8.х Регистратор в таблице остатков о оборотов

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

  1. TopicStarter Overlay
    PsyTech
    Offline

    PsyTech Опытный в 1С

    Регистрация:
    4 янв 2008
    Сообщения:
    198
    Симпатии:
    0
    Баллы:
    26
    Всем привет!

    Вот простейший запрос:
    Код:
    ВЫБРАТЬ
    ИсточникД.Организация КАК Организация,
    ИсточникД.Номенклатура КАК Номенклатура,
    ИсточникД.Склад КАК Склад,
    ИсточникД.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ИсточникД.КоличествоПриход КАК КоличествоПриход,
    ИсточникД.КоличествоРасход КАК КоличествоРасход,
    ИсточникД.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    ИсточникД.СтоимостьНачальныйОстаток КАК СтоимостьНачальныйОстаток,
    ИсточникД.СтоимостьПриход КАК СтоимостьПриход,
    ИсточникД.СтоимостьРасход КАК СтоимостьРасход,
    ИсточникД.СтоимостьКонечныйОстаток КАК СтоимостьКонечныйОстаток,
    ИсточникД.Регистратор КАК Регистратор,
    ИсточникД.ПериодМесяц КАК ПериодМесяц
    ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&Н, &К, Авто, , ) КАК ИсточникД
    ИТОГИ
    СУММА(КоличествоНачальныйОстаток)
    ПО
    Организация
    
    
    Остатки выводятся неверные. Если убрать Регистратор- то все будет ок.
    Как получить правильные остатки вместе с регистратором?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Сделать объединение запросов к Остаткам и Оборотам, причем у оборотов сделать ограничение на последний документ.
  3. TopicStarter Overlay
    PsyTech
    Offline

    PsyTech Опытный в 1С

    Регистрация:
    4 янв 2008
    Сообщения:
    198
    Симпатии:
    0
    Баллы:
    26
    Можно пример? Что значит ограничение на последний документ?
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Как-то так:

    Код:
    ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Склад,
    ВложенныйЗапрос.Организация,
    СУММА(ВложенныйЗапрос.КоличествоОборот) КАК КоличествоОборот,
    СУММА(ВложенныйЗапрос.КоличествоПриход) КАК КоличествоПриход,
    СУММА(ВложенныйЗапрос.КоличествоРасход) КАК КоличествоРасход,
    СУММА(ВложенныйЗапрос.СтоимостьОборот) КАК СтоимостьОборот,
    СУММА(ВложенныйЗапрос.СтоимостьПриход) КАК СтоимостьПриход,
    СУММА(ВложенныйЗапрос.СтоимостьРасход) КАК СтоимостьРасход,
    СУММА(ВложенныйЗапрос.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
    СУММА(ВложенныйЗапрос.СтоимостьНачальныйОстаток) КАК СтоимостьНачальныйОстаток,
    СУММА(ВложенныйЗапрос.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
    СУММА(ВложенныйЗапрос.СтоимостьКонечныйОстаток) КАК СтоимостьКонечныйОстаток
    ИЗ
    (ВЫБРАТЬ
    ПартииТоваровНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладахОстатки.Склад КАК Склад,
    ПартииТоваровНаСкладахОстатки.Организация КАК Организация,
    0 КАК КоличествоОборот,
    0 КАК КоличествоПриход,
    0 КАК КоличествоРасход,
    0 КАК СтоимостьОборот,
    0 КАК СтоимостьПриход,
    0 КАК СтоимостьРасход,
    ПартииТоваровНаСкладахОстатки.КоличествоОстаток КАК КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахОстатки.СтоимостьОстаток КАК СтоимостьНачальныйОстаток,
    0 КАК КоличествоКонечныйОстаток,
    0 КАК СтоимостьКонечныйОстаток
    ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Н, ) КАК ПартииТоваровНаСкладахОстатки
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    ПартииТоваровНаСкладахОбороты.Номенклатура,
    ПартииТоваровНаСкладахОбороты.Склад,
    ПартииТоваровНаСкладахОбороты.Организация,
    ПартииТоваровНаСкладахОбороты.КоличествоОборот,
    ПартииТоваровНаСкладахОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахОбороты.СтоимостьОборот,
    ПартииТоваровНаСкладахОбороты.СтоимостьПриход,
    ПартииТоваровНаСкладахОбороты.СтоимостьРасход,
    0,
    0,
    0,
    0
    ИЗ
    (ВЫБРАТЬ
    МАКСИМУМ(ПартииТоваровНаСкладах.Регистратор.Дата) КАК РегистраторДата,
    ПартииТоваровНаСкладах.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладах.Склад КАК Склад,
    ПартииТоваровНаСкладах.Организация КАК Организация
    ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
    
    СГРУППИРОВАТЬ ПО
    ПартииТоваровНаСкладах.Номенклатура,
    ПартииТоваровНаСкладах.Склад,
    ПартииТоваровНаСкладах.Организация) КАК ВложенныйЗапрос
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Обороты(&Н, &К, Регистратор, ) КАК ПартииТоваровНаСкладахОбороты
    ПО ВложенныйЗапрос.Номенклатура = ПартииТоваровНаСкладахОбороты.Номенклатура
    И ВложенныйЗапрос.Склад = ПартииТоваровНаСкладахОбороты.Склад
    И ВложенныйЗапрос.Организация = ПартииТоваровНаСкладахОбороты.Организация
    И ВложенныйЗапрос.РегистраторДата = ПартииТоваровНаСкладахОбороты.Период
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    ПартииТоваровНаСкладахОстатки.Номенклатура,
    ПартииТоваровНаСкладахОстатки.Склад,
    ПартииТоваровНаСкладахОстатки.Организация,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    ПартииТоваровНаСкладахОстатки.КоличествоОстаток,
    ПартииТоваровНаСкладахОстатки.СтоимостьОстаток
    ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&К, ) КАК ПартииТоваровНаСкладахОстатки) КАК ВложенныйЗапрос
    
    СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Склад,
    ВложенныйЗапрос.Организация,
    ВложенныйЗапрос.Номенклатура
    
    
    
  5. TopicStarter Overlay
    PsyTech
    Offline

    PsyTech Опытный в 1С

    Регистрация:
    4 янв 2008
    Сообщения:
    198
    Симпатии:
    0
    Баллы:
    26
    А регистратор?
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    прошу пардону, нужно ещё сделать внутреннее соединение к регистру по номенклатуре/складу/организации/периоду и вытащить регистратор от туда, и все это дело оформить в виде подзапроса, иначе будет группировка не правильно работать.
  7. TopicStarter Overlay
    PsyTech
    Offline

    PsyTech Опытный в 1С

    Регистрация:
    4 янв 2008
    Сообщения:
    198
    Симпатии:
    0
    Баллы:
    26
    Поправишь? Не совсем понятно где.
    Я сделал (в своем запросе) Периодичность регистратор и ПериодМесяц поменял на Период - остатки в порядке.
    А СКД все равно неправильно выводит :(
    Как это победить?
  8. TopicStarter Overlay
    PsyTech
    Offline

    PsyTech Опытный в 1С

    Регистрация:
    4 янв 2008
    Сообщения:
    198
    Симпатии:
    0
    Баллы:
    26
    Добавил ПериодСекунда и все получилось.
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    мож тогда Период не секунда, а Запись?
  10. TopicStarter Overlay
    PsyTech
    Offline

    PsyTech Опытный в 1С

    Регистрация:
    4 янв 2008
    Сообщения:
    198
    Симпатии:
    0
    Баллы:
    26
    Ты наверное имел ввиду периодичность Запись?
  11. TopicStarter Overlay
    PsyTech
    Offline

    PsyTech Опытный в 1С

    Регистрация:
    4 янв 2008
    Сообщения:
    198
    Симпатии:
    0
    Баллы:
    26
    Не, так не получается.
  12. TopicStarter Overlay
    PsyTech
    Offline

    PsyTech Опытный в 1С

    Регистрация:
    4 янв 2008
    Сообщения:
    198
    Симпатии:
    0
    Баллы:
    26
    И почему если этот запрос сделать вложенным, СКД выдает совсем другой результат?
  13. Amplifier
    Offline

    Amplifier Опытный в 1С

    Регистрация:
    5 май 2010
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Когда делаешь запрос в скд с запросами чуть чуть иная ситуация.

    Если в запросе есть соединения, то лучше использовать либо связь наборов данных запрос. Иными словами говоря сделать запросы в разных наборах данных и уже в схеме компоновки данных связать по нужным полям. Связь наборов данных происходит по принципу левого соединения.

    Если в скд есть запрос в котором что то объединяется, то лучше использовать набор данных объединение, в котором создать наборы данных запрос. Ну тут по тому же принципу должно происходить объединение что и в запросе.

    Про соединения знаю из личного опыта, про объединения теоретически.
    Еще можно попробовать пакетный запрос в скд. В наборе данных запрос схемы компоновки данных строишь такой же запрос, только пакетными запросами, вдруг прокатит. В этой ветке форума поднимал тему о пакетных запросах в скд.

    Что касается выборки результата запроса с регистратором из виртуальной таблицы остатки и обороты регистра накопления с подобным сталкивался. Тут люди привели интересный вариант запроса на досуге посмотрю, любопытно стало. Я же сделал несколько иначе.


    Что касается отчета, то шаблон отчета в студию может что подскажу, поскольку сдается мне с чем то подобным я сталкивался.
  14. TopicStarter Overlay
    PsyTech
    Offline

    PsyTech Опытный в 1С

    Регистрация:
    4 янв 2008
    Сообщения:
    198
    Симпатии:
    0
    Баллы:
    26
    Спасибо за ответ.
    Вот отчет. Тут ситуация такая:
    Либо остатки неверные выводятся, либо, как сейчас настроено: "Тип документа" не группируется. Это зависит от Роли полей (первая вкладка в СКД).

    Вложения:

  15. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Правильнее брать не ПериодСекунда или ПериодМесяц, а просто поле Период.
  16. TopicStarter Overlay
    PsyTech
    Offline

    PsyTech Опытный в 1С

    Регистрация:
    4 янв 2008
    Сообщения:
    198
    Симпатии:
    0
    Баллы:
    26
  17. TopicStarter Overlay
    PsyTech
    Offline

    PsyTech Опытный в 1С

    Регистрация:
    4 янв 2008
    Сообщения:
    198
    Симпатии:
    0
    Баллы:
    26
    Пришлось построить запрос без виртуальных таблиц и все теперь выводится правильно. Почему СКД выводит неправильные остатки при использовании таблицы остатков и оборотов, я так и не разобрался.
  18. Amplifier
    Offline

    Amplifier Опытный в 1С

    Регистрация:
    5 май 2010
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Тоже вариант. Если у скд идут глюки виртуальными таблицы, то пусть обрабатывает реальную.

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