Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
05 Июн 2020, 06:20
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Запрос данных из справочника  (Прочитано 324 раз)

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

Оффлайн Funt Фунтиков

  • *
  • Сообщений: 16
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-15
  • Сайт: 
Доброго всем времени суток!

Делаю запрос из двух разных справочников, ошибок не выдает, но и результат не возвращает и не выводит

Вот код из обработки выбора
Процедура БумагаОблЛистОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
стрБумага = Строка(ВыбранноеЗначение);
БумагаВалюта = ПолучитьВалютуБумага(стрБумага);
      КонецПроцедуры

Вот код запроса
&НаСервереБезКонтекста
Функция ПолучитьВалютуБумага(Ссылка)
Запрос = Новый Запрос;
Запрос.Текст =
"Выбрать
|Справочник.Валюта
|ИЗ Справочник.ЦифраМатериал КАК Справочник
|ГДЕ Справочник.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",Ссылка);
Результат = Запрос.Выполнить().Выгрузить();
Возврат Результат [0].Валюта;
Сообщить("Результат - " + Результат);

ВалютаБумага = Результат [0].Валюта;
Запрос = Новый Запрос;
Запрос.Текст =
"Выбрать
|Справочник.ЦенаВРублях
|ИЗ Справочник.Валюта КАК Справочник
|ГДЕ Справочник.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",ВалютаБумага);
РезультатВалюта = Запрос.Выполнить().Выгрузить();
Возврат РезультатВалюта [0].ЦенаВРублях;
Сообщить("Результат - " + РезультатВалюта);

КонецФункции

Суть задачи: из одного справочника запрашивается тип валюты на бумагу (например EUR), а из другого значение данной валюты.
Необходимо еще добавить один запрос из справочника ЦифраМатериал, чтобы можно было бы работать с двумя реквизитами?

Последний раз редактировалось: Funt Фунтиков; 20 Май 2020, 18:17


Оффлайн antoneus

  • ****
  • Сообщений: 292
  • РЕПУТАЦИЯ: 74
  • КПД: 25%
  • Регистрация: 2018-11-22
  • Сайт: 
  • Профессия: Программист 1С
Да не будет никогда ссылка равна строке. Что вернет

БумагаВалюта = ПолучитьВалютуБумага(ВыбранноеЗначение);

?

Оффлайн Funt Фунтиков

  • *
  • Сообщений: 16
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-15
  • Сайт: 
Да не будет никогда ссылка равна строке. Что вернет

БумагаВалюта = ПолучитьВалютуБумага(ВыбранноеЗначение);

?

это я поменял - БумагаВалюта = ПолучитьВалютуБумага(ВыбранноеЗначение);
Но он все равно ничего не возвращает и не сообщает вообще

Оффлайн antoneus

  • ****
  • Сообщений: 292
  • РЕПУТАЦИЯ: 74
  • КПД: 25%
  • Регистрация: 2018-11-22
  • Сайт: 
  • Профессия: Программист 1С
Конечно, не сообщает - Сообщить после возврата стоит) В выбранном значении что хоть находится? Сообщить(ТипЗнч(ВыбранноеЗначение)) - что пишет?

Оффлайн Funt Фунтиков

  • *
  • Сообщений: 16
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-15
  • Сайт: 
Да не будет никогда ссылка равна строке. Что вернет

БумагаВалюта = ПолучитьВалютуБумага(ВыбранноеЗначение);

?

это я поменял - БумагаВалюта = ПолучитьВалютуБумага(ВыбранноеЗначение);
Но он все равно ничего не возвращает и не сообщает вообще

возвращаю значение, процесс проходит нормально и присваиваю его реквизиту
	БумагаВалюта = ПолучитьВалютуБумага(ВыбранноеЗначение);
Сообщить(Строка(БумагаВалюта) + " - ОК");
Объект.ЦенаЛистБумагаОблЛист = БумагаВалюта;

Сообщает он правильное значение : 163,3, а вот объекту присваивает почему то - 99,99.

Может кто подскажет в чем прикол?

Оффлайн antoneus

  • ****
  • Сообщений: 292
  • РЕПУТАЦИЯ: 74
  • КПД: 25%
  • Регистрация: 2018-11-22
  • Сайт: 
  • Профессия: Программист 1С
В длине реквизита, в чем же еще.

Оффлайн Funt Фунтиков

  • *
  • Сообщений: 16
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-15
  • Сайт: 
В длине реквизита, в чем же еще.

ОГОНЬ! Спасибо большое!
Добавлено: 21 Май 2020, 15:21

С запросами вообще какой-то финиш

есть запрос из справочника, который возвращает несколько параметров.
Параметры вывожу в сообщении, все правильно выводится!
Следом делаю запрос из регистра. по одному и возвращенных параметров -> Выдает ошибку или вообще ничего не возвращает!!
&НаСервере
Функция ПолучитьВалютуБумага(Ссылка, КолПечЛист)
Сообщить("Проверка - " + Ссылка);

// запрос ВАЛЮТЫ, ЦЕНЫ за лист, ГРУППЫ материала
Запрос = Новый Запрос;
Запрос.Текст =
"Выбрать
|Справочник.Валюта,
|Справочник.СтоимостьЛист,
|Справочник.РегистрГруппа,
|Справочник.Родитель
|ИЗ Справочник.ЦифраМатериал КАК Справочник
|ГДЕ Справочник.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",Ссылка);
Результат = Запрос.Выполнить().Выгрузить();
Сообщить("Валюта - " + Результат [0].Валюта);
Сообщить("Стоимость за лист - " + Результат [0].СтоимостьЛист);
Сообщить("Группа материала - " + Результат [0].Родитель);
Сообщить("Группа - " + Результат [0].РегистрГруппа);

СсылкаРегистр = Результат [0].Родитель;

// Запрос цены ВАЛЮТЫ
ВалютаБумага = Результат [0].Валюта;
Запрос = Новый Запрос;
Запрос.Текст =
"Выбрать
|Справочник.ЦенаВРублях
|ИЗ Справочник.Валюта КАК Справочник
|ГДЕ Справочник.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",ВалютаБумага);
РезультатВалюта = Запрос.Выполнить().Выгрузить();

// запрос коэффициента из регистра НАКОПЛЕНИЙ
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВЫБОР
|КОГДА &КолПечЛист = 0
| ТОГДА 0
|КОГДА &КолПечЛист <= 50
| ТОГДА СтоимостьБумаги.До50
|КОГДА &КолПечЛист <= 100
| ТОГДА СтоимостьБумаги.До100
|КОГДА &КолПечЛист < 250
| ТОГДА СтоимостьБумаги.От100
|КОГДА &КолПечЛист < 500
| ТОГДА СтоимостьБумаги.От250
|КОГДА &КолПечЛист < 1000
| ТОГДА СтоимостьБумаги.От500
|ИНАЧЕ СтоимостьБумаги.От1000
    |    КОНЕЦ КАК Коэффициент
|ИЗ
| РегистрСведений.ЦенаБумаги КАК СтоимостьБумаги
|ГДЕ
|   РегСведЦифра = &ГруппаМатериал";

Запрос.УстановитьПараметр("ГруппаМатериал",СсылкаРегистр);
Запрос.УстановитьПараметр("КолПечЛист",КолПечЛист);
    РезультатРегистр = Запрос.Выполнить();

    Если РезультатРегистр.Пустой() Тогда
         Сообщить("Коэффициент пустой - ");
    Иначе
         Выборка = РезультатРегистр.Выбрать();
         Выборка.Следующий();
    Сообщить("Коэффициент - " + Выборка.Коэффициент);
    //Возврат Выборка.Коэффициент;
   КонецЕсли;

Сообщить("Цена в рублях - " + РезультатВалюта [0].ЦенаВРублях);

Сообщить("Коэффициент - " + Строка(РезультатРегистр [0].Коэффициент));

ЦенаЛист = РезультатВалюта [0].ЦенаВРублях *  Результат [0].СтоимостьЛист;
Сообщить(" Цена за лист - " + ЦенаЛист);
Возврат ЦенаЛист;
КонецФункции


Выдает ошибку
{Документ.РасчетЦифра.Форма.ФормаДокумента.Форма(358)}: Получение элемента по индексу для значения не определено
Сообщить("Коэффициент - " + Строка(РезультатРегистр [0].Коэффициент));

Либо возвращает пустой запрос из регистра

Последний раз редактировалось: Funt Фунтиков; 21 Май 2020, 15:21. Причина: Объединение сообщений

Оффлайн LexaK

  • *****
  • Сообщений: 2139
  • РЕПУТАЦИЯ: 629
  • КПД: 29%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
Funt Фунтиков, как исправить ошибку, в этом коде команду КонецЕсли надо перенести, сделайте так
    ...
  Если РезультатРегистр.Пустой() Тогда
         Сообщить("Коэффициент пустой - ");
        ЦенаЛист = 0;
    Иначе
         Выборка = РезультатРегистр.Выбрать();
         Выборка.Следующий();
         Сообщить("Коэффициент - " + Выборка.Коэффициент);
         //Возврат Выборка.Коэффициент;
//   КонецЕсли; // перенесли ниже

        Сообщить("Цена в рублях - " + РезультатВалюта [0].ЦенаВРублях);
   
        Сообщить("Коэффициент - " + Строка(РезультатРегистр [0].Коэффициент));
   
        ЦенаЛист = РезультатВалюта [0].ЦенаВРублях *  Результат [0].СтоимостьЛист;
        Сообщить(" Цена за лист - " + ЦенаЛист);
    КонецЕсли; //перенесли сюда

    Возврат ЦенаЛист;
КонецФункции

ошибки не будет,  а то что ни чего не находит или ноль возвращает, так это у вас не все данные введены,
проверьте и введите все нужные данные и все заработает!
Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)

Оффлайн Funt Фунтиков

  • *
  • Сообщений: 16
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-15
  • Сайт: 
Funt Фунтиков, как исправить ошибку, в этом коде команду КонецЕсли надо перенести, сделайте так
ошибки не будет,  а то что ни чего не находит или ноль возвращает, так это у вас не все данные введены,
проверьте и введите все нужные данные и все заработает!

Ошибку не возвращает, а вот выдает что "Коэффициент пустой".

А может есть какой-нибудь материальчик по запросам для чайников? Потому что, делаю на другой форме запрос, тоже возвращается пустой или с ошибками разными

Оффлайн LexaK

  • *****
  • Сообщений: 2139
  • РЕПУТАЦИЯ: 629
  • КПД: 29%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
Funt Фунтиков,
Цитировать
Ошибку не возвращает, а вот выдает что "Коэффициент пустой".
уже прогресс! ошибок нет! теперь нужные данные в базу 1С поместите и будет результат!
Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)


Теги:
 

Перенос данных из 1с 82 БП (базовая) в 1с 82 БГУ (базовая)

Автор Владимир87Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 9583
Последний ответ 06 Дек 2014, 17:40
от дфтын
Поиск по бае данных,(полнотекстовый поиск)

Автор kot_ooРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 4825
Последний ответ 19 Май 2014, 15:40
от kot_oo
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 4352
Последний ответ 26 Апр 2018, 06:45
от Геннадий ОбьГЭС
"Задваивание" данных в отчете

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 13
Просмотров: 11252
Последний ответ 15 Окт 2015, 11:21
от Mari_beginner
Как вызвать "Анализ субконто" из справочника "Контрагенты"

Автор EnigManРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 8025
Последний ответ 06 Фев 2012, 10:46
от cska-fanat-kz

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
86 Сообщений
LexaK
66 Сообщений
antoneus antoneus
65 Сообщений
alexandr_ll
18 Сообщений
Funt432286
16 Сообщений
Funt Фунтиков
16 Сообщений
aleon1 aleon1
14 Сообщений
Анна Анисимова
13 Сообщений
skaut
12 Сообщений
strelok_stv
12 Сообщений

* Кто онлайн

  • Точка Гостей: 160
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal