8.х Перебрать Документы

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

  1. TopicStarter Overlay
    rakhaev
    Offline

    rakhaev Опытный в 1С

    Регистрация:
    18 мар 2010
    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    26
    Подскажите начинающему. Имеем документ отчет о розничных продажах, необходимо за указанный Период и по указанной КассеККМ - Сумму по платежным картам уменьшить в два раза.
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Сумма КАК Сумма,
    | ВЫРАЗИТЬ(ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Сумма / 2 КАК ЧИСЛО(15, 2)) КАК Поле1,
    | ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка,
    | ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Дата
    |ИЗ
    | Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ОтчетОРозничныхПродажахОплатаПлатежнымиКартами
    |ГДЕ
    | ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Дата МЕЖДУ &ДатаН И &ДатаК";
    Запрос.УстановитьПараметр("ДатаК", ДатаК);
    Запрос.УстановитьПараметр("ДатаН", ДатаН);
    Запрос.УстановитьПараметр("КассаККМ", КассаККМ);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Док= Выборка.Ссылка.ПолучитьОбъект();
    ?????
    
    
    
    Для Каждого ТекСтр Из ... Цикл
    ТекСтр.Сумма= Выборка.Поле1();
    
    
    Подскажите как правильно написать
  2. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    я не вижу в запросе параметр КассаККМ

    ну если на коленке прикинуть.... работоспособность и соответствие вашим потребностям проверять по месту - на тестовой копии базы!!!!
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    //| ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Сумма КАК Сумма,
    //| ВЫРАЗИТЬ(ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Сумма / 2 КАК ЧИСЛО(15, 2)) КАК Поле1,
    | ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка,
    | ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Дата
    |ИЗ
    | Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ОтчетОРозничныхПродажахОплатаПлатежнымиКартами
    |ГДЕ
    | ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Дата МЕЖДУ &ДатаН И &ДатаК";
    Запрос.УстановитьПараметр("ДатаК", ДатаК);
    Запрос.УстановитьПараметр("ДатаН", ДатаН);
    Запрос.УстановитьПараметр("КассаККМ", КассаККМ);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    
    Док= Выборка.Ссылка.ПолучитьОбъект();
    тч = Док.ОплатаПлаженымиКартами;
    
    Для Каждого ТекСтр Из тч Цикл
    ТекСтр.Сумма= Окр(ТекСтр.Сумма /2, 2);
    Конеццикла;
    Док.Записать();
    Конеццикла;
    
  3. TopicStarter Overlay
    rakhaev
    Offline

    rakhaev Опытный в 1С

    Регистрация:
    18 мар 2010
    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    26
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка,
    | ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Дата,
    | ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.КассаККМ
    |ИЗ
    | Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ОтчетОРозничныхПродажахОплатаПлатежнымиКартами
    |ГДЕ
    | ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Дата МЕЖДУ &ДатаН И &ДатаК
    | И ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.КассаККМ = &КассаККМ";
    Запрос.УстановитьПараметр("ДатаК", ДатаК);
    Запрос.УстановитьПараметр("ДатаН", ДатаН);
    Запрос.УстановитьПараметр("КассаККМ", КассаККМ);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    Док= Выборка.Ссылка.ПолучитьОбъект();
    тч = Док.ОплатаПлатежнымиКартами;
    Для Каждого ТекСтр Из тч Цикл
    ТекСтр.Сумма= Окр(ТекСтр.Сумма /2, 2);
    Конеццикла;
    Док.Записать();
    Сообщить("Изменения в документе:" + Строка(Док));
    Конеццикла;
    Сделал так, всё отработало!!! Спасибо

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