8.х Написание отчета.

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Ленок, 27 авг 2013.

  1. TopicStarter Overlay
    Ленок
    Offline

    Ленок

    Регистрация:
    3 окт 2012
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте помогите мне пожалуйста правильно написать отчет!


    а данный момент пишет ошибку


    {Форма.Форма(27)}: Ошибка при вызове метода контекста (Выполнить): {(7, 24)}: Синтаксическая ошибка "(ЗаказыПокупателей)"
    Видоперации = ЗНАЧЕНИЕ<<?>>(ЗаказыПокупателей)
    Выборка = Запрос.Выполнить().Выбрать();

    Я только только начинаю, помогите мне разобраться! Спасибо

    Вложения:

    • 1.png
      1.png
      Размер файла:
      11,7 КБ
      Просмотров:
      28
    • 2.png
      2.png
      Размер файла:
      25,8 КБ
      Просмотров:
      34
    • 3.png
      3.png
      Размер файла:
      18,6 КБ
      Просмотров:
      35
    • 4.png
      4.png
      Размер файла:
      15,9 КБ
      Просмотров:
      23
  2. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    1. код лучше выкладывать прямо текстом в соответствующих тегах.
    2. запрос лучше попробовать через конструктор создавать
    3. непонятно что в запросе ВидОперации и что вы хотели передать в ЗаказыПокупателей??? это должен был быть параметр что ли? или перечисление. Давайте подробнее
  3. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Вообщето ВидОперации имеет Тип ПеречислениеСсылка.ВидыОперацийЗаказПокупателя

    Т.е строка должна иметь вид например
    ВидОперации=Значение(Перечисления.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)
  4. TopicStarter Overlay
    Ленок
    Offline

    Ленок

    Регистрация:
    3 окт 2012
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    спасибо что написали!
    1. Не понимаю про какой код Вы говорите :sm_cry:
    2. Запрося задавала по моему через конструктор!
    3. В запрос я хочу переадть ПЕРЕЧИСЛЕНИЯ! откуда что берется, только у меня это не получается не могу понять( :ph34r:

    А может он иметь вид: ВидОперации=Значение(Перечисления.ВидыОперацийРеализацияТОваровИУслуг.ЗаказПокупателей)
  5. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    1. код - это то, что вы на скринах отобразили - текст программы, если так понятнее. Просто в случае если вам захотят помочь его подправить, надо будет его набивать - это неудобно и долго.
    2. не припомню, чтоб так конструктор запросы делал, ну да ладно
    3. как передать зачение именно перечисления вам уже привели пример.
    З.Ы. не хотела вас обидеть, просто указала на узкие моменты, вам же надо чтоб быстрее и правильнее вам ответили, так? для этого надо удобоваримо разместить информацию. Так что не обижайтесь, все учились, все на грабли наступали - это не страшно
  6. TopicStarter Overlay
    Ленок
    Offline

    Ленок

    Регистрация:
    3 окт 2012
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    Нет Вы что я не обижаюсь я учусь, и критику привествую в свой адрес сейчас выложу код!

    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Если ПустаяСтрока(ПолеВвода1) Тогда
    Предупреждение("Нет слова для поиска");
    Возврат;
    КонецЕсли;
    Запрос = Новый Запрос;
    Запрос.Текст =  "
    |Выбрать
    | *
    |ИЗ
    | ЖурналДокументов.РеализацииТоваровИУслуг
    |ГДЕ
    | Видоперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРеализацияТоваровИУслуг.ЗаказПокупателей)
    |И
    | НЕ ПометкаУдаления
    |И
    | Проведен
    |И
    | ВЫРАЗИТЬ(НазначениеПлатежа КАК СТРОКА(250)) ПОДОБНО &Усл
    | И Дата МЕЖДУ &НачПериода И &КонПериода
    | УПОРЯДОЧИТЬ ПО Дата";
    
    
    Запрос.УстановитьПараметр("НачПериода",НачПериода);
    Запрос.УстановитьПараметр("КонПериода",КонПериода);
    Выборка = Запрос.Выполнить().Выбрать();
    Состав.Очистить();
    Пока Выборка.Следующий() Цикл
    НоваяСтрока = Состав.Добавить();
    НоваяСтрока.Документ = Выборка.Ссылка;
    НоваяСтрока.КонтрАгент = Выборка.Ссылка.Контрагент;
    НоваяСтрока.Дата = Выборка.Ссылка.Дата;
    НоваяСтрока.Номер = Выборка.Ссылка.НомерДокумента;
    НоваяСтрока.Сумма = Выборка.Ссылка.СуммаДокумента;
    НоваяСтрока.АдресДоставки = Выборка.Ссылка.РегистрСведений.КонтактнаяИнформация;
    НоваяСтрока.Организация = Выборка.Ссылка.РегистрСведений.КонтактнаяИнформация;
    НоваяСтрока.Организация = Выборка.Ссылка.Справочник.Организаци;
    НоваяСтрока.Экспедитор = Выборка.Ссылка.Справочник.ФизичискиеЛица;
    КонецЦикла;
    КонецПроцедуры
    Процедура ВыбПериодНажатие(Элемент)
    НастройкаПериода = Новый НастройкаПериода;
    НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
    НастройкаПериода.РедактироватьКакИнтервал = Истина;
    НастройкаПериода.РедактироватьКакПериод = Истина;
    НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
    Если НастройкаПериода.Редактировать() Тогда
    НачПериода = НастройкаПериода.ПолучитьДатуНачала();
    КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
    КонецЕсли;
    КонецПроцедуры
    Процедура СоставВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ТекСтрока = ЭлементыФормы.Состав.ТекущаяСтрока;
    Если ТекСтрока <> Неопределено Тогда
    ФормаЭлемента = ТекСтрока.Документ.Ссылка.ПолучитьФорму();
    ФормаЭлемента.ОткрытьМодально();
    КонецЕсли;
    КонецПроцедуры
    
    
    НачПериода = ТекущаяДата();
    КонПериода = ТекущаяДата();
    
    //Если ПустаяСтрока(ПолеВвода) Тогда
    // Предупреждение("Нет слова для поиска");
    // Возврат;
    //КонецЕсли;
    //Запрос = Новый Запрос;
    //Запрос.Текст =  "
    //|ВЫБРАТЬ
    //| Ссылка,
    //|   Дата
    //|ИЗ
    //| Документ.РеализацияТоваровИУслуг
    //|ОБЪЕДИНИТЬ
    //|ВЫБРАТЬ
    //| Ссылка,
    //|   Дата
    //|ИЗ
    //|Документ.ЗаказыПокупателей
    //|ГДЕ
    //| ВЫРАЗИТЬ(НазначениеПлатежа КАК СТРОКА(250)) ПОДОБНО &Усл
    //| И Дата МЕЖДУ &НачПериода И &КонПериода
    //| УПОРЯДОЧИТЬ ПО Дата" ;
    //Запрос.УстановитьПараметр("НачПериода",НачПериода);
    //Запрос.УстановитьПараметр("КонПериода",КонПериода);
    //Выборка = Запрос.Выполнить().Выбрать();
    //Состав.Очистить();
    //Пока Выборка.Следующий() Цикл
    // НоваяСтрока = Состав.Добавить();
    // НоваяСтрока.Документ = Выборка.Ссылка;
    //КонецЦикла;
    
    Но все же он пише мне ошибки:
    {Форма.Форма(27)}: Ошибка при вызове метода контекста (Выполнить): {(7, 24)}: Синтаксическая ошибка "(Перечисление.ВидыОперацийРеализацияТоваровИУслуг.ЗаказПокупателей)"
    Видоперации = ЗНАЧЕНИЕ<<?>>(Перечисление.ВидыОперацийРеализацияТоваровИУслуг.ЗаказПокупателей)
    Выборка = Запрос.Выполнить().Выбрать();
  7. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Вы в конфигураторе откройте и увидте что ссылается на вид операций который имеет вид ПеречислениеСсылка.ВидыОперацийЗаказПокупателя

    Попробуйте как я Вам написал
  8. TopicStarter Overlay
    Ленок
    Offline

    Ленок

    Регистрация:
    3 окт 2012
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    Запрос.Текст = "
    |Выбрать
    | *
    |ИЗ
    | ЖурналДокументов.ЗаказПокупателей
    |ГДЕ
    | Видоперации = ЗНАЧЕНИЕ(ПеречислениеСсылка.ВидыОперацийЗаказПокупателя)

    | НЕ ПометкаУдаления
    Так?
  9. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    ВидОперации=Значение(Перечисления.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)

    Запрос.Текст = "
    |Выбрать
    | *
    |ИЗ
    | ЖурналДокументов.ЗаказПокупателей
    |ГДЕ
    | ВидОперации=Значение(Перечисления.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)

    | НЕ ПометкаУдаления
  10. TopicStarter Overlay
    Ленок
    Offline

    Ленок

    Регистрация:
    3 окт 2012
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    {Форма.Форма(27)}: Ошибка при вызове метода контекста (Выполнить): {(7, 24)}: Синтаксическая ошибка "(Перечисления.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)"
    Видоперации = ЗНАЧЕНИЕ<<?>>(Перечисления.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)
    Выборка = Запрос.Выполнить().Выбрать();

    Все тоже самое! :blink:
  11. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Попробуйте
    ЗаказыПокупателей.ВидОперации = ЗНАЧЕНИЕ(ПеречислениЕ.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)
  12. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ВидОперации=Значение(ПеречислениЕ.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)
  13. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Код:
    ВЫБРАТЬ
    ЗаказыПокупателей.Ссылка
    ИЗ
    ЖурналДокументов.ЗаказыПокупателей КАК ЗаказыПокупателей
    ГДЕ
    ЗаказыПокупателей.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)
    И НЕ ЗаказыПокупателей.ПометкаУдаления = &ПометкаУдаления
  14. TopicStarter Overlay
    Ленок
    Offline

    Ленок

    Регистрация:
    3 окт 2012
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    {Форма.Форма(27)}: Ошибка при вызове метода контекста (Выполнить): {(7, 41)}: Синтаксическая ошибка "(Перечисление.ВидыОперацийЗаказПокупателей.ПродажаКомиссия)"
    ЗаказПокупателей.ВидОперации = ЗНАЧЕНИЕ<<?>>(Перечисление.ВидыОперацийЗаказПокупателей.ПродажаКомиссия)
    Выборка = Запрос.Выполнить().Выбрать();

    Ну что за нафик не как не хочет!

    Запрос.Текст = "
    |Выбрать
    | *
    |ИЗ
    | ЖурналДокументов.ЗаказПокупателей
    |ГДЕ
    | ЗаказПокупателей.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателей.ПродажаКомиссия)

    | НЕ ПометкаУдаления

    | Проведен

    | ВЫРАЗИТЬ(НазначениеПлатежа КАК СТРОКА(250)) ПОДОБНО &Усл
    | И Дата МЕЖДУ &НачПериода И &КонПериода
    | УПОРЯДОЧИТЬ ПО Дата";

    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ЗаказыПокупателей.Ссылка
    |ИЗ
    |ЖурналДокументов.ЗаказыПокупателей КАК ЗаказыПокупателей
    |ГДЕ
    |ЗаказыПокупателей.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)
    |И НЕ ЗаказыПокупателей.ПометкаУдаления = &ПометкаУдаления

    | Проведен

    | ВЫРАЗИТЬ(НазначениеПлатежа КАК СТРОКА(250)) ПОДОБНО &Усл
    | И Дата МЕЖДУ &НачПериода И &КонПериода
    | УПОРЯДОЧИТЬ ПО Дата";


    Скажите Вот так?
  15. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    я бы вот эту часть вот так записала
    Код:
    |И ЗаказыПокупателей.ПометкаУдаления = Ложь
    |И
    | ЗаказыПокупателей.Проведен = Истина
  16. TopicStarter Overlay
    Ленок
    Offline

    Ленок

    Регистрация:
    3 окт 2012
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    Ух сдвинулась с мертвой точки!
    но теперь новую ошибку выдал!

    {Форма.Форма(25)}: Ошибка при вызове метода контекста (Выполнить): {(2, 1)}: Ожидается выражение "ВЫБРАТЬ"
    <<?>>ЗаказыПокупателей.Ссылка
    Выборка = Запрос.Выполнить().Выбрать();

    Почему у меня выборка не правильна?
  17. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    слово ВЫБРАТЬ добавить надо
  18. TopicStarter Overlay
    Ленок
    Offline

    Ленок

    Регистрация:
    3 окт 2012
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    вроде добавлено, еще раз что ли?
  19. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну добавьте выбрать я просто текст запроса копировал из конструктора


    Запрос.Текст = " ВЫБРАТЬ
    |ЗаказыПокупателей.Ссылка
    |ИЗ
    |ЖурналДокументов.ЗаказыПокупателей КАК ЗаказыПокупателей
    |ГДЕ
    |ЗаказыПокупателей.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)
    |И НЕ ЗаказыПокупателей.ПометкаУдаления = &ПометкаУдаления

    | Проведен

    | ВЫРАЗИТЬ(НазначениеПлатежа КАК СТРОКА(250)) ПОДОБНО &Усл
    | И Дата МЕЖДУ &НачПериода И &КонПериода
    | УПОРЯДОЧИТЬ ПО Дата";
  20. TopicStarter Overlay
    Ленок
    Offline

    Ленок

    Регистрация:
    3 окт 2012
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Если ПустаяСтрока(ПолеВвода1) Тогда
    Предупреждение("Нет слова для поиска");
    Возврат;
    КонецЕсли;
    Запрос = Новый Запрос;
    
    Запрос.Текст =  "
    |ЗаказыПокупателей.Ссылка
    |ИЗ
    |ЖурналДокументов.ЗаказыПокупателей КАК ЗаказыПокупателей
    |ГДЕ
    |ЗаказыПокупателей.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)
    |И ЗаказыПокупателей.ПометкаУдаления = Ложь
    |И
    |ЗаказыПокупателей.Проведен = Истина
    |И
    | ВЫРАЗИТЬ(НазначениеПлатежа КАК СТРОКА(250)) ПОДОБНО &Усл
    | И Дата МЕЖДУ &НачПериода И &КонПериода
    | УПОРЯДОЧИТЬ ПО Дата";
    
    
    Запрос.УстановитьПараметр("НачПериода",НачПериода);
    Запрос.УстановитьПараметр("КонПериода",КонПериода);
    Выборка = Запрос.Выполнить().Выбрать();
    Запрос.Текст = "
    |ЗаказыПокупателей.Ссылка
    |ИЗ
    |ЖурналДокументов.ЗаказыПокупателей КАК ЗаказыПокупателей
    |ГДЕ
    |ЗаказыПокупателей.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ПродажаКомиссия)
    |И НЕ ЗаказыПокупателей.ПометкаУдаления = &ПометкаУдаления
    |И ЗаказыПокупателей.ПометкаУдаления = Ложь
    |И
    |ЗаказыПокупателей.Проведен = Истина
    |И
    | ВЫРАЗИТЬ(НазначениеПлатежа КАК СТРОКА(250)) ПОДОБНО &Усл
    | И Дата МЕЖДУ &НачПериода И &КонПериода
    | УПОРЯДОЧИТЬ ПО Дата";
    Состав.Очистить();
    Пока Выборка.Следующий() Цикл
    НоваяСтрока = Состав.Добавить();
    НоваяСтрока.Документ = Выборка.Ссылка;
    НоваяСтрока.КонтрАгент = Выборка.Ссылка.Контрагент;
    НоваяСтрока.Дата = Выборка.Ссылка.Дата;
    НоваяСтрока.Номер = Выборка.Ссылка.НомерДокумента;
    НоваяСтрока.Сумма = Выборка.Ссылка.СуммаДокумента;
    НоваяСтрока.АдресДоставки = Выборка.Ссылка.РегистрСведений.КонтактнаяИнформация;
    НоваяСтрока.Организация = Выборка.Ссылка.РегистрСведений.КонтактнаяИнформация;
    НоваяСтрока.Организация = Выборка.Ссылка.Справочник.Организаци;
    НоваяСтрока.Экспедитор = Выборка.Ссылка.Справочник.ФизичискиеЛица;
    КонецЦикла;
    КонецПроцедуры
    Посмотрите пожалуйста правильно или нет? потому что такую же ошибку рисует!(

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