8.х Помогите найти физическую таблицу

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем AlenkaInt, 13 авг 2012.

  1. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Доброе утро. Стала советоваться с коллегой. Он сказала, что если накладывается группировка, то накладывается на все поля, что нельзя сгруппировать только по одному полю. А как же мне быть, если мне надо в п.2. сгруппировать по Регистратору и периоду?
  2. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    AlenkaInt, используйте временные таблицы. Ибо в таком запросе без временных таблиц разбираться тяжело.
    Я же написал детальный алгоритм: у вас должно быть 4 временные таблицы + итоговая выборка.


    То что вы привели в #39 посте у вас в принципе работает? Сравните то что написали вы, и то как надо написать (#35 пост). Потом переделайте.

    Еще раз. Чтобы было сделано два шага:
    1) Сделайте выборку полей Период, Регистратор, Номенклатура, ВидДвижения, ВНаличии из физической таблицы. Помещаете это все в одну временную таблицу.
    2) Из временной таблицы, созданной на шаге 1) делаете выборку всех полей, но разбиваете их на Приход и Расход (подобно тому как вы написали в #39, но повторяю посмотрите еще раз синтаксис, я привел правильный синтаксис в посте #35) + делаете группировку по Период, Регистратор, Номенклатура.
    Помещаете результат также во временную таблицу.


    Да, это будет пункт 3). Из временной таблицы, полученной на шаге 2) делаете выборку всех полей, и вычисляете при этом поле оборот как Приход-Расход.
  3. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    У меня и так и так работает. Но на всяк. случай исправила.
  4. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Я пошла немного другим путем. Решила сделать 3 временные таблицы. Первая - Сумма(Приход), Сумма(Расход), Период это будут обороты.
    Вот запрос.
    ВЫБРАТЬ
    КОЛИЧЕСТВО(ТоварыНаСкладах.Период) КАК Период,
    ТоварыНаСкладах.Номенклатура,
    СУММА(ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Приход,
    СУММА(ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Расход
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах

    СГРУППИРОВАТЬ ПО
    ТоварыНаСкладах.Номенклатура
    Только я не знаю куда мне период деть, если я его группирую, то цифры не сходятся.
    Вторая - Приход - Расход с группировкой по номенклатуре - это будут остатки на начало.
    Третья Левое соединение справочника Номенклатура с обеими временными таблицами по полю Номенклатура с выводом нужных полей.
  5. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Спасибо shurikvz за помощь, Отчет сделала, в понедельник узнаю правильно или нет.
  6. shurikvz
    Offline

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

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

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Здравствуйте. 3 замечания было к моему решению.
    1. Не правильно посчитаны Начальные Остатки. У меня это Приход-Расход.
    2. Надо было еще сделать периодичность с шагом день
    3. Объединить предложил преподаватель на закладке Объединения/Псевдонимы.
    Последний пункт я почти реализовала, но вот как сделать периодичность и как рассчитать Начальные остатки не знаю.
    На всякий случай выкладываю запрос.
    ВЫБРАТЬ
    КОЛИЧЕСТВО(ТоварыНаСкладах.Период) КАК Период,
    ТоварыНаСкладах.Номенклатура КАК Товар,
    СУММА(ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Приход,
    СУММА(ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Расход
    ПОМЕСТИТЬ Обороты
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах

    СГРУППИРОВАТЬ ПО
    ТоварыНаСкладах.Номенклатура
    ;

    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ТоварыНаСкладах.Номенклатура КАК Товар,
    СУММА(ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ - ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Остаток
    ПОМЕСТИТЬ НачальныеОстатки
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах

    СГРУППИРОВАТЬ ПО
    ТоварыНаСкладах.Номенклатура
    ;

    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    Номенклатура.Наименование КАК Наименование,
    ЕСТЬNULL(НачальныеОстатки.Остаток, 0) КАК НачОстаток,
    ЕСТЬNULL(Обороты.Приход, 0) КАК Приход,
    ЕСТЬNULL(НачальныеОстатки.Остаток, 0) + ЕСТЬNULL(Обороты.Приход, 0) - ЕСТЬNULL(Обороты.Расход, 0) КАК КонОстаток,
    ЕСТЬNULL(Обороты.Расход, 0) КАК Расход
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ НачальныеОстатки КАК НачальныеОстатки
    ПО Номенклатура.Ссылка = НачальныеОстатки.Товар
    ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
    ПО Номенклатура.Ссылка = Обороты.Товар

    УПОРЯДОЧИТЬ ПО
    Наименование
  8. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    1. Смотря что вы подразумеваете под начальными остатками (на какой момент времени)? Если имеется ввиду на начало периода в котором вы выводите выборку (если вы задаете период, но в запросе я этого не вижу), то это будет Приход-Расход (он же Оборот), до дня начала выборки. Криво написано, по другому не знаю как сказать, т.е. Если у вас в запросе есть что-то вроде &НачалоПериода и &КонецПериода, то остатки на начало периода, это будет сумма Оборота по дням до даты &НачалоПериода.
    Если же имеется ввиду, начальные (конечные) остатки в самой выборке (в том периоде который выводите, другими словами "по-дням"), то естественно это не просто Приход-Расход, Их же еще по дням суммировать надо нарастающим итогом.

    2. В чем проблема? Период у вас есть. Когда в первом запросе пакета группируете, для Периода не надо задавать агрегатную функцию, надо наоборот сгруппировать данные еще и по периоду.

    3. Не совсем понял, но видимо имеется ввиду третий пакет запроса, где вам предложили не использовать левое соединение а вместо этого использовать обЪединение. Т.е. Таблицу начальные остатки обЪединить с таблицей обороты. Вам понадобятся 4 поля (для числовых данных я имею ввиду, + еще для измерений). Из первой таблицы берете Приход, Расход, остальные поля 0, из второй НачальныйОстаток и КонечныйОстаток, остальные поля 0.
    Т.е. условно будет выглядеть так:

    Код:
    ВЫБРАТЬ
    НачальныеОстатки.Период,
    НачальныеОстатки.Номенклатура,
    НачальныеОстатки.НачальныйОстаток,
    0 КАК Приход,
    0 КАК Расход,
    НачальныеОстатки.КонечныйОстаток
    ИЗ НачальныеОстатки
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    Обороты.Период,
    Обороты.Номенклатура,
    0,
    Обороты.Приход,
    Обороты.Расход,
    0
    ИЗ Обороты
    В любом случае, повторяюсь: смотрите еще раз мой алгоритм, там все описано.
  9. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    1. Начальные остатки имеется в ввиду на начало дня(в том периоде который надо вывести, в моем случае это день), если конечно были какие то движения.. В моем отчете начальные остатки посчитаны не правильно. Я прилагаю фото отчета, там начальные остатки на все даты у товара одинаковые.
    2. Сделала. Перенесла поле Период во временной таблице Обороты в групповое поле.
    Прилагаю вид получившегося отчета. Надо как то суммировать по дням. Например конфеты Ассорти 31 марта мы продавали 2 раза и у меня 2 строчки получилось. Это нужно наложить какое то условие на поле приход, расход, что если в один день 2 прихода/расхода их надо суммировать? Есть идея использовать функцию НачалоПериода(Период,ДЕНЬ), может так попробовать?
    3. С этим пунктом пока отбой. Это была рекомендация, без этого можно обойтись. Мне бы остальное сделать.
    Ваш алгоритм смотрю постоянно, не все мне понятно, вот вы пишете соединение таблицы самой к себе, а мне пока это сложно понять и таких моментов масса. Поэтому извините за глупые вопросы, но и у вас наверное не все сразу получилось :)

    Вложения:

    • Фото11.jpg
      Фото11.jpg
      Размер файла:
      167,1 КБ
      Просмотров:
      17
  10. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Чтобы данные выводились с периодичностью день, я решила воспользоваться выражением НАЧАЛОПЕРИОДА(ТоварыНаСкладах.Период, ДЕНЬ)
    Я упорядочиваю по полю период по возрастанию. Но почему то числа идут не по порядку. Сначало 04.04, потом 03.04, 02.04, 01.04, 31.03, 29.03, 08.04, 07.04... Не понятно почему.
    Вот мой запрос
    Код:
    ВЫБРАТЬ
    СУММА(ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Приход,
    СУММА(ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Расход,
    НАЧАЛОПЕРИОДА(ТоварыНаСкладах.Период, ДЕНЬ) КАК Период
    ПОМЕСТИТЬ Обороты
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    СГРУППИРОВАТЬ ПО
    НАЧАЛОПЕРИОДА(ТоварыНаСкладах.Период, ДЕНЬ)
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ТоварыНаСкладах.Номенклатура КАК Товар,
    СУММА(ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ - ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Остаток
    ПОМЕСТИТЬ НачальныеОстатки
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    СГРУППИРОВАТЬ ПО
    ТоварыНаСкладах.Номенклатура
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    Номенклатура.Наименование КАК Наименование,
    ЕСТЬNULL(НачальныеОстатки.Остаток, 0) КАК НачОстаток,
    ЕСТЬNULL(Обороты.Приход, 0) КАК Приход,
    ЕСТЬNULL(Обороты.Расход, 0) КАК Расход,
    ЕСТЬNULL(НачальныеОстатки.Остаток, 0) + ЕСТЬNULL(Обороты.Приход, 0) - ЕСТЬNULL(Обороты.Расход, 0) КАК КонОстаток,
    Обороты.Период КАК Период
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ НачальныеОстатки КАК НачальныеОстатки
    ПО Номенклатура.Ссылка = НачальныеОстатки.Товар,
    Обороты КАК Обороты
    ГДЕ
    (НЕ Номенклатура.ЭтоГруппа)
    УПОРЯДОЧИТЬ ПО
    Период
  11. mialord
    Offline

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

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

    Вложения:

    • 111111.png
      111111.png
      Размер файла:
      289,4 КБ
      Просмотров:
      14
  12. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.760
    Симпатии:
    509
    Баллы:
    204
    Задача должна решиться без использования виртуальных таблиц.
  13. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Да, это суровая учебная задача, надо сделать без использования виртуальных таблиц. С использованием виртуальных таблиц слишком просто сказали.
  14. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Вроде решила часть с периодичностью. Надо браться за НачальныйОстаток. Теоретически я знаю что надо сделать - надо получать начальные остатки в самой выборке в периоде по дням, надо нарастающим итогом по дням суммировать. Нарастающие итоги получаются соединением таблицы к самой себе. Но как это реализовать я не знаю. Это нужно делать в итоговом запросе, где собирается результат или во временной таблице Обороты? Если в оборотах, то нужно добавлять еще одно поле и там, с помощью произвольного выражения соединить? А если в результирующем запросе, то на какой закладке?
    Спасибо.
  15. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Времени сейчас на сайт заходить нет.

    Покажите, что у вас сейчас получилось.
    Еще лучше - сделайте по моему алгоритму, буквально по шагам, первые 3 запроса и покажите, что получается. Не соединяйте два шага в один, делайте прям как расписано. Естественно делайте не буквально, а в соответствие со своим заданием, т.е. поле регистратор (из примера) вам не нужно будет.
    Когда сделаете - перейдем к 4 шагу с остатками. Соединять надо будет по номенклатуре и периоду.
  16. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    1.)
    Поля -
    Период, Номенклатура, ВидДвижения
    2.)
    Приход, Расход, Период, Номенклатура
    3.)
    Номенклатура, Период, Приход, Расход, Оборот
    Вот запрос, что получился.
    Код:
    ВЫБРАТЬ
    СУММА(ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Приход,
    СУММА(ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Расход,
    НАЧАЛОПЕРИОДА(ТоварыНаСкладах.Период, ДЕНЬ) КАК Период,
    ТоварыНаСкладах.Номенклатура,
    ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ - ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ КАК Оборот
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    СГРУППИРОВАТЬ ПО
    НАЧАЛОПЕРИОДА(ТоварыНаСкладах.Период, ДЕНЬ),
    ТоварыНаСкладах.Номенклатура,
    ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ - ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ТоварыНаСкладах.Номенклатура,
    ТоварыНаСкладах.ВидДвижения,
    ТоварыНаСкладах.Период
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ КАК Приход,
    ВЫБОР
    КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ТОГДА ТоварыНаСкладах.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ КАК Расход,
    ТоварыНаСкладах.Период,
    ТоварыНаСкладах.Номенклатура
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
  17. shurikvz
    Offline

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

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

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

    Шаг 1) алгоритма я вам показал, напишите дальше шаги 2) и 3) и покажите что получается.
  18. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Сделала.
    Код:
    ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(ТоварыНаСкладах.Период, ДЕНЬ) КАК Период,
    ТоварыНаСкладах.Номенклатура,
    ТоварыНаСкладах.ВидДвижения,
    ТоварыНаСкладах.ВНаличии
    ПОМЕСТИТЬ ИсходныеДанные
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    СУММА(ВЫБОР
    КОГДА ИсходныеДанные.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ИсходныеДанные.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Приход,
    СУММА(ВЫБОР
    КОГДА ИсходныеДанные.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ТОГДА ИсходныеДанные.ВНаличии
    ИНАЧЕ 0
    КОНЕЦ) КАК Расход,
    ИсходныеДанные.Номенклатура КАК Номенклатура,
    ИсходныеДанные.Период КАК Период
    ПОМЕСТИТЬ ПриходРасход
    ИЗ
    ИсходныеДанные КАК ИсходныеДанные
    СГРУППИРОВАТЬ ПО
    ИсходныеДанные.Номенклатура,
    ИсходныеДанные.Период
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ПриходРасход.Приход,
    ПриходРасход.Расход,
    ПриходРасход.Приход - ПриходРасход.Расход КАК Оборот,
    ПриходРасход.Номенклатура,
    ПриходРасход.Период
    ИЗ
    ПриходРасход КАК ПриходРасход
  19. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Странный у Вас препод, Вы точно там учитесь где собирались? или у преподавателя просто мозгов не хватило чтобы нормальную задачу придумать, которая Вас действительно научит тому. что пригодится в жизни
  20. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Не знаю. Я не оцениваю тех кто учит, но сейчас действительно задумалась. Я как то привыкла по другому учиться. Что сначало показывают простую задачу, потом ты ее решаешь сам, потом сложнее и т.д. Знаете как детей учат от простого к сложному, от общего к частному. А не так что сразу в одном запросе и произвольные условия и группировка и соединение таблиц самих с собой и пакетные запросы, временные таблицы.. Но я до этого стажировалась в БИТе, оттуда тоже ушла, потому что гнали очень высокий темп, каждый день новая тема, понял-не понял все равно, а потом сразу в бой, выезжать к клиентам, перешла сюда. И подумала, может это со мной что не так, раз нигде не нравится.

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