Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 июн 2024, 09:17

Выборка из нескольких ресурсов РЕГИСТР СВЕДЕНИЙ

Автор Funt432286, 13 сен 2019, 11:10

0 Пользователей и 1 гость просматривают эту тему.

Funt432286

Доброго времени суток!
Этот вопрос уже поднимался ранее, то так решить его не смог.
Мучаюсь с запросом из регистра сведений.
Запрос по виду Материала и КолПечЛистов. Но КолПечЛист долно выбираться из одного из 6 ресурсов, в зависимости от диапазона в который попадает данное число.
Например, если КолПечЛист = 135, а Материал = "картон", то функция должна вернуть значение 8,05.
Помогите пожалуйста, как можно реализовать такой запрос! Очень, очень нужно!

alexandr_ll

Цитата: Funt432286 от 13 сен 2019, 11:10
Доброго времени суток!
Этот вопрос уже поднимался ранее, то так решить его не смог.
Мучаюсь с запросом из регистра сведений.
Запрос по виду Материала и КолПечЛистов. Но КолПечЛист долно выбираться из одного из 6 ресурсов, в зависимости от диапазона в который попадает данное число.
Например, если КолПечЛист = 135, а Материал = "картон", то функция должна вернуть значение 8,05.
Помогите пожалуйста, как можно реализовать такой запрос! Очень, очень нужно!

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   СБ.ГруппаБумаги КАК ГруппаБумаги,
        |   СБ.МатериалЦифра КАК МатериалЦифра,
        |   СБ.МассаБумаги КАК МассаБумаги,
        |   СБ.до50,
        |   СБ.до100
        |ИЗ
        |   РегистрСведений.СтоимостьБумаги КАК СБ
        |ГДЕ
        |   ГруппаБумаги = &ГруппаБумаги  и
        |   МатериалЦифра = &МатериалЦифра и
        |   МассаБумаги = &МассаБумаги ";

    Запрос.УстановитьПараметр("ГруппаБумаги",
        ГруппаБумаги );
    Запрос.УстановитьПараметр("МатериалЦифра",
        МатериалЦифра );
    Запрос.УстановитьПараметр("МассаБумаги",
        МассаБумаги);
    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если КолПечЛист<50 Тогда
            Стр=ВыборкаДетальныеЗаписи.До50;
ИначеЕсли КолПечЛист<100 Тогда
            Стр=ВыборкаДетальныеЗаписи.До100;
КонецЕсли;
    КонецЦикла;

Funt432286

Спасибо большое!
Позже проверю данный код и обязательно отпишусь о результате!
Добавлено: 13 сен 2019, 16:00


Почему-то он ничего не возвращает и ошибок не выдает. Возможно в саму функцию не правильно передаются значения выбора.
Функция выглядит вот так:

&НаКлиенте
Процедура БумагаОблЛистОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ПолучитьЦенуЗаЛист(ВыбранноеЗначение, Объект.КолПечЛистОблЛист);
КонецПроцедуры


Для проверки данных добавил вывод сообщением, но ничего не выдается!

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(ВыборкаДетальныеЗаписи + " -");
Если КоличествоЛистов<50 Тогда
            Стр=ВыборкаДетальныеЗаписи.До50;
Сообщить(Стр);
ИначеЕсли КоличествоЛистов<100 Тогда
            Стр=ВыборкаДетальныеЗаписи.До100;
Сообщить(Стр);
КонецЕсли;
    КонецЦикла

Добавлено: 14 сен 2019, 14:16


Доброго всем времени суток!
Помогите пожалуйста с этой проблемкой, очень нужна помощь, пожалуйста!

Funt432286

Доброго всем времени суток!
Помогите пожалуйста! Уже больше недели бьюсь, ничего не получается с запросом из регистра сведений. С начало была проблемы с тип данных переменных, которые передавались в запрос. Теперь ти данных один, запрос все равно не приносит результатов.
Вроде были моменты когда выдавался правильный результат запроса, при попытки проверки и разбиении данных все куда-то проваливалось и опять все с начало.
Пожалуйста, ПОМОГИТЕ!!!!!!!!!

Вот код процедуры из которой возвращается функция

&НаКлиенте // БУМАГА - стоимость бумаги ОБЛОЖКА / ЛИСТОВКА
Процедура БумагаОблЛистОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
стрБумага = Строка(ВыбранноеЗначение);
Сообщить(стрБумага);
ПолучитьЦенуЗаЛист(стрБумага, Объект.КолПечЛистОблЛист);
Объект.МассаОблБумага = ПолучитьМассуРасчет(ВыбранноеЗначение);
Сообщить(Строка(ВыбранноеЗначение) + " ! ");
КонецПроцедуры


Вот функция с запросом

&НаСервере
Функция ПолучитьЦенуЗаЛист(БумагаЦена, КоличествоЛистов) // запрос СТОИМОСТИ бумаги

Сообщить("Проверка -" + БумагаЦена);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СтоимостьБумаги.МатериалЦифра КАК МатериалЦифра,
| СтоимостьБумаги.До50,
| СтоимостьБумаги.До100,
| СтоимостьБумаги.От100,
| СтоимостьБумаги.От250,
| СтоимостьБумаги.От500,
| СтоимостьБумаги.От1000
|ИЗ
| РегистрСведений.СтоимостьБумаги КАК СтоимостьБумаги
|ГДЕ
|   МатериалЦифра = &БумагаЦена
|";

Запрос.УстановитьПараметр("БумагаЦена",БумагаЦена);

    РезультатЗапроса = Запрос.Выполнить();

    Записи = РезультатЗапроса.Выбрать();

Сообщить(БумагаЦена + " - параметр отбора");

Пока Записи.Следующий() Цикл
        Сообщить(
            "[" + Записи.МатериалЦифра + "] " +
            Записи.До50 + " - " +
            Записи.До100 + " - " +
            Записи.От100 + " - "
        );

    КонецЦикла;

Сообщить("Конец запроса!");
КонецФункции


ПОЖАЛУЙСТА ПОМОГИТЕ!!!!!!!!!:(:(:(:(:(:(:(:(:(:(:(:(:(:(

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск