8.х Получить реквизит регистра накопления

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

  1. TopicStarter Overlay
    Akuji
    Offline

    Akuji Опытный в 1С

    Регистрация:
    5 июн 2007
    Сообщения:
    119
    Симпатии:
    0
    Баллы:
    26
    Требуется в запросе получить реквизит регистра накопления:
    через выборку его не видит.
    Получилось через набор записей с отбором по регистратору, но при наличии одинаковых записей в одном регистраторе выдается последнее.
    Помогите или добить набор записей или подскажите другой способ. :unsure:
  2. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Физически не ощущаю проблемы.
    Код:
    ВЫБРАТЬ
    ТоварыНаСкладах.КодОперации,
    ТоварыНаСкладах.Склад,
    ТоварыНаСкладах.Номенклатура,
    ТоварыНаСкладах.ХарактеристикаНоменклатуры,
    ТоварыНаСкладах.СерияНоменклатуры,
    ТоварыНаСкладах.Качество,
    ТоварыНаСкладах.Количество
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    
    Здесь КодОперации - реквизит регистра накопления ТоварыНаСкладах. Успешно выдается при выполнении запроса...
  3. TopicStarter Overlay
    Akuji
    Offline

    Akuji Опытный в 1С

    Регистрация:
    5 июн 2007
    Сообщения:
    119
    Симпатии:
    0
    Баллы:
    26
    Забыл уточнить: регистр накопления обороты)
  4. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Хм, не интересовался таким делом, но подозреваю, что тебе придется расчитывать все это дело через группировки.
    Т.е. обращаемся непосредственно к таблице регистра, и группируем по интересующим нас измерениям и реквизитам. Через виртуальные таблицы это кажется сделать не поулчится. Т.е. нечто вроде:

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

    Akuji Опытный в 1С

    Регистрация:
    5 июн 2007
    Сообщения:
    119
    Симпатии:
    0
    Баллы:
    26
    Лана. Пока забыли. Есть запрос

    Код:
    "ВЫБРАТЬ
    |    ВнеоборотныеАктивыОстаткиИОбороты.ВнеоборотныйАктив КАК ВнеоборотныйАктив,
    |    ВнеоборотныеАктивыОстаткиИОбороты.ЭлементыЗатрат,
    |    ВнеоборотныеАктивыОстаткиИОбороты.Организация,
    |    ВнеоборотныеАктивыОстаткиИОбороты.СчетКВ,
    |    ВнеоборотныеАктивыОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    |    ВнеоборотныеАктивыОстаткиИОбороты.НДСНачальныйОстаток КАК НДСНачальныйОстаток,
    |    ВнеоборотныеАктивыОстаткиИОбороты.СуммаПриход КАК СуммаПриход,
    |    ВнеоборотныеАктивыОстаткиИОбороты.НДСПриход КАК НДСПриход,
    |    ВнеоборотныеАктивыОстаткиИОбороты.СуммаРасход КАК СуммаРасход,
    |    ВнеоборотныеАктивыОстаткиИОбороты.НДСРасход КАК НДСРасход,
    |    ВнеоборотныеАктивыОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
    |    ВнеоборотныеАктивыОстаткиИОбороты.НДСКонечныйОстаток КАК НДСКонечныйОстаток,
    |    ВнеоборотныеАктивыОстаткиИОбороты.Регистратор,
    |    ВнеоборотныеАктивыОстаткиИОбороты.НомерСтроки
    |ИЗ
    |    РегистрНакопления.ВнеоборотныеАктивы.ОстаткиИОбороты(&НачДата, &КонДата, Запись, ,
    |                            "+?(пусто(Организация),"","Организация = &Организация И ")+"
    |    "+?(пусто(Капвлож),"","ВнеоборотныйАктив = &Капвлож И ")+"СчетКВ в Иерархии (&СчетКВ) ) 
    |                       КАК ВнеоборотныеАктивыОстаткиИОбороты
    |
    |УПОРЯДОЧИТЬ ПО
    |    ВнеоборотныйАктив
    |ИТОГИ
    |    СУММА(СуммаНачальныйОстаток),
    |    СУММА(НДСНачальныйОстаток),
    |    СУММА(СуммаПриход),
    |    СУММА(НДСПриход),
    |    СУММА(СуммаРасход),
    |    СУММА(НДСРасход),
    |    СУММА(СуммаКонечныйОстаток),
    |    СУММА(НДСКонечныйОстаток)
    |ПО
    |    ОБЩИЕ,
    |    ВнеоборотныйАктив";
    
    
    
    Этот запрос выбирает из регистра записи по условиям (даты, организация, счет).
    Вопрос: Почему он выдает кроме строк подходящих по условию еще и другие строки, которые не подходят. Неправильные строки он выдает пустыми т.е. в отчет добавляется пустая строка. Анализ показал что количество пустых строк вроде как равно всем не попавшим в условие + группирвки какието по ходу.
    Написал сам не пойму что, но может кто подскажет что.
  6. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26

    Это:
    Код:
    |ИЗ
    |    РегистрНакопления.ВнеоборотныеАктивы.ОстаткиИОбороты(&НачДата, &КонДата, Запись, ,
    "+?(пусто(Организация),"","Организация = &Организация И ")+"
    |    "+?(пусто(Капвлож),"","ВнеоборотныйАктив = &Капвлож И ")+"СчетКВ в Иерархии (&СчетКВ) ) 
    КАК ВнеоборотныеАктивыОстаткиИОбороты
    
    
    
    Попробуй заменить на это:
    Код:
    |ИЗ
    |    РегистрНакопления.ВнеоборотныеАктивы.ОстаткиИОбороты(&НачДата, &КонДата, Запись)
    |ГДЕ
    |    СчетКВ в Иерархии (&СчетКВ)
    |    "+?(пусто(Капвлож), "", "И ВнеоборотныйАктив = &Капвлож")+" 
    |    "+?(пусто(Организация), "", "И Организация = &Организация")+" 
    КАК ВнеоборотныеАктивыОстаткиИОбороты
    
    
    
  7. TopicStarter Overlay
    Akuji
    Offline

    Akuji Опытный в 1С

    Регистрация:
    5 июн 2007
    Сообщения:
    119
    Симпатии:
    0
    Баллы:
    26
    Спасибо, но нет. От того что вынесли условие ниче не изменилось, да и так делать не рекомендуют. Что то другое...
  8. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Не рекомендуют?)
    Кто? Где? Можно почитать рекомендации?
  9. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    LordKim,
    Использование условий в ГДЕ и в параметрах вирт таблиц - это разные вещи. В 99,9% случаев нужно использовать условия в параметрах.
  10. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Почему?
    Дай тему или параметры для поиска, почитаю)
  11. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Первый запрос:
    Код:
    "ВЫБРАТЬ
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки"
    
    
    
    Второй запрос:
    Код:
    "ВЫБРАТЬ
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки
    ГДЕ
    ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура"
    
    
    
    В первом варианте накладывается фильтр на таблицу остатков, после чего выдается остаток по фильтру.
    Во втором варианте сначала выбирается ВСЯ таблица остатков и только потом накладывается фильтр и получается остаток.

    В случае больших таблиц разница во времени исполнения может достигать несколько ДЕСЯТКОВ порядков. В частности, я сталкивался со случаями, когда первый запрос выполнялся за 0.02 секунды, когда второй выполнялся за 18...

    PS. Также, в связи с этой особенностью, иногда могут получаться различные результаты работы запросов.
    PPS. На ИТС, вроде, было описание...
  12. TopicStarter Overlay
    Akuji
    Offline

    Akuji Опытный в 1С

    Регистрация:
    5 июн 2007
    Сообщения:
    119
    Симпатии:
    0
    Баллы:
    26
    А по вопросу...)
  13. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    :unsure:
    Akuji,
    Сорри за оффтоп :)
  14. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    А группировать пробовал?
Похожие темы
  1. J-F
    Ответов:
    2
    Просмотров:
    308
  2. Venturion
    Ответов:
    11
    Просмотров:
    1.096
  3. Sergey-911
    Ответов:
    7
    Просмотров:
    1.896
  4. AUBalan
    Ответов:
    10
    Просмотров:
    579
  5. НиколайН
    Ответов:
    2
    Просмотров:
    185
Загрузка...

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