8.х Люди добрые нужен помощь

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Шурик_1985, 14 май 2011.

  1. TopicStarter Overlay
    Шурик_1985
    Offline

    Шурик_1985

    Регистрация:
    12 май 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Хожу на курсы программирование 1с 8
    на курсах дают нам домашнее задание, без ваших помощи я не потяну стопудова.
    нужно с помощю коструктор запроса сделать след:
    1.Получите данные о контактных лицах их телефонах, полном наименовании контрагентов.
    2.Получите список наиболее дорогих (по ценам продажи) товаров.
    3.Получите данные о том, какой контрагент, на какую сумму поставил нашей компании товар.В резултате запроса должен присутстствовать итоги и по группа справочника "Контрагенты"
    4.В задании №3 данные, о каком либо контрагенте должен встречаться один раз.
    5.Получите список из 5 самых продаваемых (по количеству) товаров.

    я попытался сделать 1. зацените:ВЫБРАТЬ
    Контрагенты.Наименование,
    КонтактныеЛица.Телефон,
    КонтактныеЛица.Наименование КАК Наименование1
    ИЗ
    Справочник.КонтактныеЛица КАК КонтактныеЛица
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
    ПО КонтактныеЛица.Владелец = Контрагенты.Ссылка

    остальное тупо сижу и смотрю
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Это нужно сделать одним запросом или для каждого пункта нужно отдельный запрос?
  3. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Сейчас нет под рукой 1С, чтоб написать запросы, но суть подскажу:
    2. Получить список самых дорогих товаров.
    Делаете запрос по двум регистрам - ОстаткиТоваровНаСкладах.Остатки и ЦеныНоменклатуры.СрезПоследних (указываете в параметрах дату, на которую нужно это получить); Связываете по номенклатуре, в отбор добовляете ЦеныНоменклатуры.ТипЦен=Витрина(или как там у вас, ну короче продажные цены), сортировку делаете по убыванию. Таким образом у вас выводится список товаров, которые есть на остатке и сортировка идет по убыванию, т.е. наверху самые дорогие, внизу-дешевые.
    3. Не помню по какому регистру лучше делать запрос, но суть в том, что нужно брать Обороты(вроде:)), тогда у вас будут показатели СтоимостьПриход; Группировку Контрагентов делаете групп и элементов, и добовляете ОбщиеИтоги.
    4. Вставляете в запрос (3) ВЫБРАТЬ РАЗЛИЧНЫЕ;
    5. Делаете запрос по регистру Продажи, в отборе делаете КоличествоРасход > Определенное количество, Добавляете в запрос ВЫБРАТЬ ПЕРВЫЕ 5.

    Сильно не пинайте, писал на коленке. Это достаточно простые запросы, так что их можно реализовать разными путями:)

    И вдобавок, это не точная инструкция что, откуда и каким образом делать в запросе. Просто это небольшой толчек:))), чтобы вы сами могли додуматься как сделать правильно и как вам удобнее, это будет лучший эффект от обучения, чем просто слизать готовый ответ.
  4. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Код:
    Функция ПолучитьРезультатЗапроса_ВопросНомер1()
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |	КонтактныеЛицаКонтрагентов.Владелец КАК Контрагент,
    |	КонтактныеЛицаКонтрагентов.Ссылка КАК КонтактноеЛицо,
    |	ВыборкаКонтактнойИнформации.Телефон
    |ИЗ
    |	Справочник.КонтактныеЛицаКонтрагентов КАК КонтактныеЛицаКонтрагентов
    |		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |			КонтактнаяИнформация.Представление КАК Телефон,
    |			КонтактнаяИнформация.Объект КАК КонтактноеЛицо
    |		ИЗ
    |			РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |		ГДЕ
    |			КонтактнаяИнформация.Тип = &Тип) КАК ВыборкаКонтактнойИнформации
    |		ПО КонтактныеЛицаКонтрагентов.Ссылка = ВыборкаКонтактнойИнформации.КонтактноеЛицо
    |ИТОГИ ПО
    |	Контрагент,
    |	КонтактноеЛицо";
    //Параметры запроса
    Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Телефон);// Перечисление ссылка: Типы контактной информации
    Результат = Запрос.Выполнить();
    
    Возврат Результат;
    
    КонецФункции //ПолучитьРезультатЗапроса_ВопросНомер1
    
    Посмотреть вложение 7235

    Код:
    Функция ПолучитьРезультатЗапроса_ВопросНомер2()
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 10
    |	ЦеныНоменклатурыСрезПоследних.Номенклатура,
    |	ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры,
    |	ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
    |	ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
    |ИЗ
    |	РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
    |ГДЕ
    |	ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
    |
    |УПОРЯДОЧИТЬ ПО
    |	Цена УБЫВ";
    //Параметры запроса
    Запрос.УстановитьПараметр("ТипЦен",);// Справочник ссылка: Типы цен номенклатуры
    Результат = Запрос.Выполнить();
    
    Возврат Результат;
    
    КонецФункции //ПолучитьРезультатЗапроса_ВопросНомер2
    
    Посмотреть вложение 7236

    Вложения:

    • 14.05.png
      14.05.png
      Размер файла:
      32,6 КБ
      Просмотров:
      135
    • 14.05.png
      14.05.png
      Размер файла:
      22,8 КБ
      Просмотров:
      112
  5. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Код:
    Функция ПолучитьРезультатЗапроса_ВопросНомер3()
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |	ВзаиморасчетыСКонтрагентамиОбороты.Организация КАК Организация,
    |	ВзаиморасчетыСКонтрагентамиОбороты.Контрагент КАК Контрагент,
    |	ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход
    |ИЗ
    |	РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Организация = &НашаОрганизация) КАК ВзаиморасчетыСКонтрагентамиОбороты
    |ГДЕ
    |	ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
    |ИТОГИ
    |	СУММА(СуммаВзаиморасчетовРасход)
    |ПО
    |	Организация,
    |	Контрагент";
    //Параметры запроса
    Запрос.УстановитьПараметр("КонецПериода",КонецПериода);// Дата
    Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода);// Дата
    Запрос.УстановитьПараметр("НашаОрганизация",);// Справочник ссылка: Организации
    Результат = Запрос.Выполнить();
    
    Возврат Результат;
    
    КонецФункции //ПолучитьРезультатЗапроса_ВопросНомер3
    
    Посмотреть вложение 7237

    Вложения:

    • 14.05.png
      14.05.png
      Размер файла:
      21,2 КБ
      Просмотров:
      71
  6. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Код:
    Функция ПолучитьРезультатЗапроса_ВопросНомер5()
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 5
    |	ПродажиОбороты.Номенклатура КАК Номенклатура,
    |	ПродажиОбороты.КоличествоОборот КАК Количество,
    |	ПродажиОбороты.СтоимостьОборот КАК Стоимость
    |ИЗ
    |	РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
    |
    |УПОРЯДОЧИТЬ ПО
    |	Количество УБЫВ
    |ИТОГИ
    |	СУММА(Количество),
    |	СУММА(Стоимость)
    |ПО
    |	Номенклатура";
    Результат = Запрос.Выполнить();
    
    Возврат Результат;
    
    КонецФункции //ПолучитьРезультатЗапроса_ВопросНомер5
    
    Посмотреть вложение 7238

    Я дал Вам ответы на Ваши вопросы, а теперь дам рекомендацию, забудьте про мои ответы и сами составьте запросы на Ваши задачи, в противном случае Вам крайне тяжело будет начинать работать в среде программистов 1С без понимания языка запросов. это один из наиболее важных инструментов 1С.
    Удачи!

    Вложения:

    • 14.05.png
      14.05.png
      Размер файла:
      13,1 КБ
      Просмотров:
      77

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