8.х Проблема с запросом

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Masya, 29 май 2011.

  1. TopicStarter Overlay
    Masya
    Offline

    Masya

    Регистрация:
    16 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте!Есть такой код:

    Код:
    ЗапросНачисление = новый Запрос();
    ЗапросНачисление.Текст = 
    "ВЫБРАТЬ 
    | Клиенты.Ссылка, 
    | Клиенты.ДатаВступления, 
    | Клиенты.Код,
    | Клиенты.Скидка.Ссылка 
    |ИЗ 
    | Справочник.Клиенты КАК Клиенты"; 
    ИтогНачисление = ЗапросНачисление.Выполнить().Выгрузить();
    Для каждого Элемент из ИтогНачисление Цикл 
    ДатаНачала = Элемент.ДатаВступления; 
    Если День(ДатаНачала)=День(ТекущаяДата()) Тогда
    Номера = Справочники.Клиенты.НайтиПоКоду(Элемент.Код).НомерГаража;
    Для каждого Номер из Номера цикл 
    Документ = Документы.Начисление.СоздатьДокумент();
    Документ.Дата = ТекущаяДата();
    Документ.Клиент = Элемент.Ссылка;
    Документ.НомерГаража = Номер.НомерГаража;
    Документ.СуммаНачисления = -Итог[0].Цена * АктуальнаяСкидка.Скидка(ТекущаяДата(),Элемент.Скидка.Ссылка)/100;
    Документ.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Оперативный); КонецЦикла;
    КонецЕсли
    КонецЦикла
    
    Так вот!проблема сообственно в этой строке:
    Код:
    Документ.СуммаНачисления = -Итог[0].Цена * АктуальнаяСкидка.Скидка(ТекущаяДата(),Элемент.Скидка.Ссылка)/100;
    
    Говорит "Поле объекта не обнаружено(Скидка)". Поле в справочнике в который делаем запрос точно есть. Подскажите как исправить?
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    1)
    Либо попробуйте:
    "Элемент.СкидкаСсылка" (без точки).

    Либо в запросе пропишите:
    "|Клиенты.Скидка.Ссылка КАК Скидка"
    и потом пишите просто
    "Элемент.Скидка"

    2) Почему бы в запрос не передать текущую дату, и получить запросом только нужные элементы справочника Клиенты?

    3) Почему бы сразу в запросе не получать номер гаража?
  3. TopicStarter Overlay
    Masya
    Offline

    Masya

    Регистрация:
    16 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    1)спасибо попробую сейчас!
    2)там дело в структуре конфигурации. я немножко-сильно привязан к правилам написания курсовика поэтому подругому не дают сделать.
    3)Попробую!)
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    И вот эту строку посмотрите у себя:
    Код:
    Если День(ДатаНачала)=День(ТекущаяДата()) Тогда
    
    Думаю там должно быть не День(), а НачалоДня().
  5. TopicStarter Overlay
    Masya
    Offline

    Masya

    Регистрация:
    16 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    да с днем все нормально!мне там нужно начислять взносы и я проверяю чтобы месяц прошел со дня заключения договора!

    а вот со скидкой как то не получается!(((
  6. TopicStarter Overlay
    Masya
    Offline

    Masya

    Регистрация:
    16 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    написал Документ.СуммаНачисления = -Итог[0].Цена * АктуальнаяСкидка.Скидка(ТекущаяДата(), Элемент.СкидкаСсылка)/100;

    выдает ошибку "Недопустимое значение параметра"
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Недопустимое значение параметра в каком выражении?
    Что такое Итог[0]?
    Что такое АктуальнаяСкидка?
  8. TopicStarter Overlay
    Masya
    Offline

    Masya

    Регистрация:
    16 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1

    Итог[0] получается из запроса:
    Код:
    ЗапросСумма = новый Запрос();
    ЗапросСумма.Текст = "
    ВЫБРАТЬ 
    | СУММА(ПараметрыВзноса.Цена) КАК Цена 
    |ИЗ 
    | РегистрСведений.ПараметрыВзноса КАК ПараметрыВзноса";
    Итог = ЗапросСумма.Выполнить().Выгрузить();
    
    Актуальная скидка это модуль:

    Код:
    Функция Скидка(АктуальнаяДата, ЭлементКатегорияСкидок) Экспорт 
    Отбор = Новый Структура("КатегорияСкидок", ЭлементКатегорияСкидок);
    ЗначенияСкидки = РегистрыСведений.КатегорияСкидок.ПолучитьПоследнее(АктуальнаяДата, Отбор); Возврат ЗначенияСкидки.Скидка; 
    КонецФункции
    
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
  10. TopicStarter Overlay
    Masya
    Offline

    Masya

    Регистрация:
    16 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Не понял что вы этим хотели сказатЬ?
  11. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Эм. Забудьте, поторопился.


    "Недопустимое значение параметра" - где выдает, на какой параметр?
  12. TopicStarter Overlay
    Masya
    Offline

    Masya

    Регистрация:
    16 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1

    {ОбщийМодуль.АктуальнаяСкидка(4)}: Ошибка при вызове метода контекста (ПолучитьПоследнее): Недопустимое значение параметра (параметр номер '2')
    ЗначенияСкидки = РегистрыСведений.КатегорияСкидок.ПолучитьПоследнее(АктуальнаяДата, Отбор);
    по причине:
    Недопустимое значение параметра (параметр номер '2')

    в этом модуле:

    Код:
    Функция Скидка(АктуальнаяДата, ЭлементКатегорияСкидок) Экспорт
    Отбор = Новый Структура("КатегорияСкидок", ЭлементКатегорияСкидок); 
    ЗначенияСкидки = РегистрыСведений.КатегорияСкидок.ПолучитьПоследнее(АктуальнаяДата, Отбор); 
    Возврат ЗначенияСкидки.Скидка; КонецФункции
    
  13. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Измерение в регистре точно называется "КатегорияСкидок"?
  14. TopicStarter Overlay
    Masya
    Offline

    Masya

    Регистрация:
    16 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1

    Да, точно. Проверял уже раз на пять!
  15. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Без отбора сделайте.
    Код:
    Функция Скидка(АктуальнаяДата, ЭлементКатегорияСкидок) Экспорт
    ЗначенияСкидки = РегистрыСведений.КатегорияСкидок.ПолучитьПоследнее(АктуальнаяДата); 
    Возврат ЗначенияСкидки.Скидка; 
    КонецФункции
    
    Если заработает, тогда все-таки не такое имя.

Поделиться этой страницей