Перейти к содержимому

Перейти
Перейти

Запрос, количество дней отсрочки поставщика


  • Закрытая тема Тема закрыта
Сообщений в теме: 3

#1   candrey

candrey

      Рядовой

    • Пользователи
    • Сообщений: 6
    • Регистрация: 03-June 10
    • Откуда:Запорожье , Запорожская Область , Украина

Отправлено 18 February 2016 - 16:21

Добрый день 1С 8.2 Файловая.

В запросе надо получить Номенклатуру, а через эту номенклатуру Основного поставщика и число дней отсрочки(основного поставщика эта цифра указывается в его договоре).

Результат: Номенклатура определяется. основной поставщик тоже. А количество дней с договора поставщика пишет 0.
Не могу достучатся до этой даты. подскажите где ошибка.
Запрос= Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Номенклатура,
    |    Номенклатура.ОсновнойПоставщик,
    |              Номенклатура.ОсновнойПоставщик.ОсновнойДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура";
    
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
    
    Выб = Запрос.Выполнить().Выбрать();
    Если Выб.Следующий() Тогда
        Возврат Выб.ОсновнойПоставщик.ОсновнойДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности;
    Иначе
        Возврат 0;
    КонецЕсли;

  • 0

#2   pupkovik

pupkovik

      Рядовой

    • Пользователи
    • Сообщений: 3
    • Регистрация: 24-February 16

Отправлено 24 February 2016 - 13:47

У Вас запрос без отбора по конкретной номенклатуре. Поэтому он возвращает всю выборку по справочнику.
Таким образом конструкция "Если Выб.Следующий() Тогда" позиционируется на первую строчку выборки.
А это вообще может быть абсолютно любой элемент справочника Номенклатура. у которого может быть:
1. Не указан Основной поставщик
2. А если указан, то у него может быть не указан Основной договор (маловероятно, но может быть)
3. В этом договоре отсрочка может стоять 0.

Тут вообще не понятна цель запроса.
Если вы знаете и так номенклатуру, то зачем вам в запросе определять то, что и так можете достать:

Номенклатура.ОсновнойПоставщик.ОсновнойДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности

И без запроса

 


  • 1

#3   32ops

32ops

      Рядовой

    • Пользователи
    • Сообщений: 3
    • Регистрация: 23-February 14

Отправлено 19 March 2016 - 05:42

Добрый день 1С 8.2 Файловая.

В запросе надо получить Номенклатуру, а через эту номенклатуру Основного поставщика и число дней отсрочки(основного поставщика эта цифра указывается в его договоре).

Результат: Номенклатура определяется. основной поставщик тоже. А количество дней с договора поставщика пишет 0.
Не могу достучатся до этой даты. подскажите где ошибка.
Запрос= Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Номенклатура,
    |    Номенклатура.ОсновнойПоставщик,
    |              Номенклатура.ОсновнойПоставщик.ОсновнойДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура";
    
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
    
    Выб = Запрос.Выполнить().Выбрать();
    Если Выб.Следующий() Тогда
        Возврат Выб.ОсновнойПоставщик.ОсновнойДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности;
    Иначе
        Возврат 0;
    КонецЕсли;

 

добавьте в запросе поле Номенклатура.ОсновнойПоставщик.ОсновнойДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности, посмотрите в консоле, что возвращает запрос


  • 1

#4   candrey

candrey

      Рядовой

    • Пользователи
    • Сообщений: 6
    • Регистрация: 03-June 10
    • Откуда:Запорожье , Запорожская Область , Украина

Отправлено 21 March 2016 - 11:20

Всем спасибо за помощь. Тему можно закрыть. Причина была в том что не был указан основной договор "по умолчанию". Через который тянется дата отсрочки. Теперь все отрабатывает корректно.


  • 1



Похожие темы

  Название темы Автор Статистика Последнее сообщение



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных