Запрос в документе 1с77

Тема в разделе "1C и всё что с ней связано", создана пользователем lira89, 14 сен 2010.

  1. lira89

    lira89 Well-Known Member

    Регистрация:
    12 мар 2010
    Сообщения:
    159
    Симпатии:
    0
    В модуле формы документа есть запрос:
    Код (Text):
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{Запрос(Сформировать)
    |Период с НачМесяца(ДатаДок) по ДатаДок
    |Назначение = Регистр.Остатки.Назначение;
    |Студент = Регистр.Остатки.Студент;
    |СуммаИзРег = Регистр.Остатки.Сумма;
    |Функция СуммаНачОст = НачОст(Сумма);
    |Функция СуммаПрихода = Приход(Сумма);
    |ОстатокНаНачалоМесяца = СуммаНачОст();
    |ПриходДенег = СуммаПриход();
    |"//}}Запрос
    Нужно узнать из регистра остаток на начало месяца и приход денег в течении месяца, а потом использовать эти значения в дальнейших формулах, например:
    Код (Text):
    Если ОстатокНаНачалоМесяца<0 Тогда
    ДолгН=МодульЧисла(ОстатокНаНачалоМесяца);
    ОстатокН=0;
    .......
    Вопрос:
    1 Почему в отладчике я не могу пройти по запросу и посмотреть значение в переменных ОстатокНаНачалоМесяца и ПриходДенег ,отладчик перепрыгивает запрос и идет дальше?
    2 Правильно ли вообще построен запрос, потому что у меня переменные ОстатокНаНачалоМесяца и ПриходДенег остаются =0?
    Подскажите пожалуйста что тут не так и признательна была бы за ссылки на хорошую теорию про запросы, т.к. я только начинаю с ними работать ;)
    Заранее спасибо.
     
  2. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    В ЖКК неплохая теория.
    Запрос выполняется весь сразу, а не пошагово. Поэтому в отладчике вы ничего не увидите.
     
  3. Hryv

    Hryv Гость

    Зачем для таких простых вещей использовать запросы?

    Работайте с регистром напрямую
    Плюсы: в синтакс-помощнике достаточно информации и отлаживаться проще

    PS запрос неверный
    PPS если так уж нужны запросы, то используйте конструктор запросов
     
  4. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Hryv прав : PS запрос неверный. Надо исправить ошибки.
    Добавь группировку "Студент", выгрузи запрос в ТЗ и смотри ее, сколько душе угодно
     
  5. lira89

    lira89 Well-Known Member

    Регистрация:
    12 мар 2010
    Сообщения:
    159
    Симпатии:
    0
    А как получить напрямую приход за месяц и остаток на начало месяца у регистра остатков?
     
  6. Hryv

    Hryv Гость

    Вам программу написать?

    Для остатков есть метод Остаток()
    по ситуации может быть удобнее и другими способами (их по крайней мере еще 2)

    с приходом за период для регистра остатков сложнее (для оборотного было бы проще)
    можно суммировать в цикле
    Рег.ВыбратьДвижения(НачДата,КонДата);
    Пока Рег.ПолучитьДвижение()=1 Цикл
     
  7. lira89

    lira89 Well-Known Member

    Регистрация:
    12 мар 2010
    Сообщения:
    159
    Симпатии:
    0
    Понятно, программу писать мне не надо, я просто хотела узнать про методы для регистра остатков, которые позволили бы получить приход за месяц. Спасибо за ответ, буду пробовать.
    А насчет метода Остаток это понятно, но как узнать остаток на конкретную дату. В справке 1с данный метод имеет вид Остаток(<Измерен1>,<Измерен2>...,<ИмяРесурса>) и здесь некуда ввести нужную дату.
     
  8. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    посмотри
    РассчитатьРегистрыНа(По)
    и ВременныйРасчет
     
  9. kaa

    kaa Гость

    ТекстЗапроса =
    "//{{Запрос(Сформировать)
    |Период с НачМесяца(ДатаДок) по ДатаДок
    |Назначение = Регистр.Остатки.Назначение;
    |Студент = Регистр.Остатки.Студент;
    |СуммаИзРег = Регистр.Остатки.Сумма;
    |Функция СуммаНачОст = НачОст(Сумма);
    |Функция СуммаПрихода = Приход(Сумма);
    // // |ОстатокНаНачалоМесяца = СуммаНачОст();
    // // |ПриходДенег = СуммаПриход();
    |"//}}Запрос


    Если Запрос.СуммаНачОст <0 Тогда
    ДолгН=МодульЧисла(Запрос.СуммаНачОст );
    ОстатокН=0;
     
  10. lira89

    lira89 Well-Known Member

    Регистрация:
    12 мар 2010
    Сообщения:
    159
    Симпатии:
    0
    А я могу узнать например название и дату документа, с помощью которого было совершено движение регистра остатков?
     
  11. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    |Док = Регистр.Остатки.ТекущийДокумент;
     
  12. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    А еще группировочку указать.

    |Группировка Студент;
    |Группировка Док;
     
Загрузка...

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