8.х Выбрать документы на определенную сумму. Возможно ли такое при помощи запроса?

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

  1. TopicStarter Overlay
    Morris
    Offline

    Morris Новичок в 1С

    Регистрация:
    13 авг 2014
    Сообщения:
    22
    Симпатии:
    1
    Баллы:
    4
    Здравствуйте. Следующая задача возникает довольно часто.
    Необходимо распределить сумму задолженности между документами. Документы упорядочены по убыванию даты. Всегда эту задачу решал перебором документов в цикле. А можно ли это сделать запросом?
  2. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.978
    Симпатии:
    397
    Баллы:
    104
    То ли я тупею, то ли люди так вопросы задают. Нужно распределить или выбрать? Это разные вещи.
  3. TopicStarter Overlay
    Morris
    Offline

    Morris Новичок в 1С

    Регистрация:
    13 авг 2014
    Сообщения:
    22
    Симпатии:
    1
    Баллы:
    4
    Извините, мне показалось, что это однотипные задачи. Есть сумма задолженности, необходимо получить список документов, которые ее составляют.
  4. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Ну да, можно и запросом, использовать конструкцию ВЫБОР КОГДА ТОГДА
  5. TopicStarter Overlay
    Morris
    Offline

    Morris Новичок в 1С

    Регистрация:
    13 авг 2014
    Сообщения:
    22
    Симпатии:
    1
    Баллы:
    4
    Я уточню: Не выбрать документы с определенной суммой, а выбрать документы на определенную сумму.
  6. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    думаю не стоит заморачиваться, проще в цикле
  7. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    ну так по идее эта ваша сумма задолжености которая есть по ним и составлена :) (по документам)
  8. TopicStarter Overlay
    Morris
    Offline

    Morris Новичок в 1С

    Регистрация:
    13 авг 2014
    Сообщения:
    22
    Симпатии:
    1
    Баллы:
    4
    Задолженность собирается не только по приходникам, но и по расходникам. Соответственно, если она дебетовая, нужен список приходных документов, которые в сумме и дадут эту самую задолженность.
    В общем случае задача сводится к задаче распределения задолженности по периодам образования.
  9. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    уху, а вот начать надо было вопрос с указания конфы, типовая или писаная
  10. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Из регистров накопления можно выбрать документы на определенную сумму.
  11. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    ТС дезу закинул в первом посте, не то ему надо, а иное
  12. TopicStarter Overlay
    Morris
    Offline

    Morris Новичок в 1С

    Регистрация:
    13 авг 2014
    Сообщения:
    22
    Симпатии:
    1
    Баллы:
    4
    А почему это важно? Такая задача может возникнуть и в писаной и в процессе доработки существующей.
    Как ? Я чего-то не догоняю.
  13. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    подход к решению будет разный
  14. TopicStarter Overlay
    Morris
    Offline

    Morris Новичок в 1С

    Регистрация:
    13 авг 2014
    Сообщения:
    22
    Симпатии:
    1
    Баллы:
    4
    Я кажется понимаю о чем Вы. Нет у меня нигде не хранится информация о том, какой расходный документ какие приходники закрывает.
  15. shurikvz
    Offline

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

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

    Код:
    "ВЫБРАТЬ
        ДАТАВРЕМЯ(2014, 1, 1) КАК Дата,
        "№1" КАК Документ,
        15 КАК Сумма
    ПОМЕСТИТЬ ВТ
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ДАТАВРЕМЯ(2014, 1, 2),
        "№2",
        10
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ДАТАВРЕМЯ(2014, 1, 3),
        "№3",
        13
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ДАТАВРЕМЯ(3999, 12, 31),
        "<документ не определен>",
        ВЫРАЗИТЬ(&СуммаКПогашению КАК ЧИСЛО)
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ.Дата,
        ВТ.Документ,
        СУММА(ВТКопия.Сумма) - ВТ.Сумма КАК СуммаДо,
        ВТ.Сумма,
        СУММА(ВТКопия.Сумма) КАК СуммаПосле
    ПОМЕСТИТЬ ВТ1
    ИЗ
        ВТ КАК ВТ
            ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК ВТКопия
            ПО ВТ.Дата >= ВТКопия.Дата
    
    СГРУППИРОВАТЬ ПО
        ВТ.Дата,
        ВТ.Документ,
        ВТ.Сумма
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ1.Дата,
        ВТ1.Документ,
        ВТ1.СуммаДо,
        ВТ1.Сумма,
        ВТ1.СуммаПосле,
        (ВЫРАЗИТЬ(&СуммаКПогашению КАК ЧИСЛО)) - ВТ1.СуммаДо КАК ОстатокДолгаПоНакладной
    ПОМЕСТИТЬ ВТ2
    ИЗ
        ВТ1 КАК ВТ1
    ГДЕ
        (ВЫРАЗИТЬ(&СуммаКПогашению КАК ЧИСЛО)) > ВТ1.СуммаДо
        И (ВЫРАЗИТЬ(&СуммаКПогашению КАК ЧИСЛО)) <= ВТ1.СуммаПосле
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ.Дата,
        ВТ.Документ,
        ВТ.Сумма КАК СуммаНакладной,
        ВЫБОР
            КОГДА ВТ.Документ = ВТ2.Документ
                ТОГДА ВТ2.ОстатокДолгаПоНакладной
            ИНАЧЕ ВТ.Сумма
        КОНЕЦ КАК СуммаКПогашениюПоНакладной
    ИЗ
        ВТ КАК ВТ
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2
            ПО ВТ.Дата <= ВТ2.Дата"
    

    Но делайте циклом, им проще понять.
    Morris нравится это.
  16. TopicStarter Overlay
    Morris
    Offline

    Morris Новичок в 1С

    Регистрация:
    13 авг 2014
    Сообщения:
    22
    Симпатии:
    1
    Баллы:
    4
    Вот спасибо! И ведь работает же.
    Понять этот запрос действительно непросто. Мне будет чем заняться в ближайшее время.
  17. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.978
    Симпатии:
    397
    Баллы:
    104
    Эх, молодость :)

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