7.7 Проблема с отчетом по регистру

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

  1. TopicStarter Overlay
    FoXy
    Offline

    FoXy

    Регистрация:
    5 янв 2008
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Здравсвуйте! Проблема собственно такая - создал регситр создал процедуру проведения по регистру :
    Код:
    Процедура ОбработкаПроведения()
    
    //Проведение документа по регистру ВыданныеТМЦ
    ТаблицаНоменклатуры = СоздатьОбъект("ТаблицаЗначений");
    ВыгрузитьТабличнуюЧасть(ТаблицаНоменклатуры);
    ТаблицаНоменклатуры.ВыбратьСтроки();
    Пока ТаблицаНоменклатуры.ПолучитьСтроку() = 1 Цикл
    //ЗаписьРегистра = СоздатьОбъект("Регистр.ВыданныеТМЦ");
    Регистр.ВыданныеТМЦ.Сотрудник =             Сотрудник;
    Регистр.ВыданныеТМЦ.Выдавший =             ПолученоОт;
    Регистр.ВыданныеТМЦ.НаименованиеМЦ =     ТаблицаНоменклатуры.Товар;
    Регистр.ВыданныеТМЦ.Количество =         ТаблицаНоменклатуры.Количество;
    Регистр.ВыданныеТМЦ.Цена =                 ТаблицаНоменклатуры.Цена;
    Регистр.ВыданныеТМЦ.Сумма =             ТаблицаНоменклатуры.Сумма;
    Регистр.ВыданныеТМЦ.Дата =                 ТаблицаНоменклатуры.ДатаВыдачи;
    Регистр.ВыданныеТМЦ.ДвижениеВыполнить();
    КонецЦикла;
    //ЗаписьРегистра.ДвижениеВыполнить();
    КонецПроцедуры
    
    И создал отчет по этому регистру, но почему то отчет не выбирает данные из регистра или же он пустой.. Как можно посмотреть содержимое регистра, или же в чем у меня тут ошибка? Код выборки из регстра вот:

    Код:
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |Наименование = Регистр.ВыданныеТМЦ.НаименованиеМЦ;
    |Количество =     Регистр.ВыданныеТМЦ.Количество;
    |Цена =            Регистр.ВыданныеТМЦ.Цена;
    |Сумма =         Регистр.ВыданныеТМЦ.Сумма;
    |Сотрудник =     Регистр.ВыданныеТМЦ.Сотрудник;
    |Дата =            Регистр.ВыданныеТМЦ.Дата;
    |Группировка Сотрудник;
    |//Условие(Сотрудник = ВыбСотрудник);
    |";
    Если Запрос.Выполнить(ТекстЗапроса) = 0 тогда
    Сообщить("Хреновый запрос");
    Возврат;
    КонецЕсли;
    Номер = 0;
    Пока Запрос.Группировка(1) = 1 Цикл
    Сообщить("Здесь я был");
    Номер = Номер + 1;
    Если Запрос.Сотрудник.ЭтоГруппа() = 1 Тогда
    Сообщить("Здесь я был");
    ПечатьОтчет.ВывестиСекицию("ТМЦ");
    КонецЕсли;        
    КонецЦикла;
    
    V. Общие правила оформления сообщений
    1. Оформляйте код программы с помощью тега
    Код:
     Подробно ознакомиться с тэгами и их использованием можно [url="http://www.1c-pro.ru/index.php?s=&act=legends&CODE=bbcode"]тут[/url]. В редакторе сообщения можно выделить необходимый участок текста и нажать кнопку "#" для автоматического добавления тега [CODE][/color]
  2. MaxxaM
    Offline

    MaxxaM Опытный в 1С

    Регистрация:
    16 окт 2007
    Сообщения:
    288
    Симпатии:
    2
    Баллы:
    29
    На сколько я понимаю ошибочка в запрос попала, ну вроде как оборотный регистр нужно смотреть за период, а в запросе периода нет.
    Проще всего помотреть выполняются ли движения по регистру - на активном документе (есно проведенном) посмотреть по правой клавише мышки пункт "Движение" :unsure:
  3. TopicStarter Overlay
    FoXy
    Offline

    FoXy

    Регистрация:
    5 янв 2008
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Код запроса изменил так:
    Код:
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |Период с ДатаНач по ДатаКон;
    |Наименование = Регистр.ВыданныеТМЦ.НаименованиеМЦ;
    |Количество =     Регистр.ВыданныеТМЦ.Количество;
    |Цена =            Регистр.ВыданныеТМЦ.Цена;
    |Сумма =         Регистр.ВыданныеТМЦ.Сумма;
    |Сотрудник =     Регистр.ВыданныеТМЦ.Сотрудник;
    |Дата =            Регистр.ВыданныеТМЦ.Дата;
    |Группировка Сотрудник;
    |Функция КолСтрок = Счётчик();
    |Функция ПриходИмя = Приход(Сумма);
    |";
    Если Запрос.Выполнить(ТекстЗапроса) = 0 тогда
    Сообщить("Хреновый запрос");
    Возврат;
    КонецЕсли;
    Сообщить(Запрос.КолСтрок);
    Номер = 0;
    Пока Запрос.Группировка(1) = 1 Цикл
    Сообщить("Здесь я был");
    //и т.д.
    
    
    В реистре данные есть, за выбранный период они точно есть, да регистр оборотный. Функция счетчик показывает постоянно 0. Что ещё может быть не так? :unsure:
  4. MaxxaM
    Offline

    MaxxaM Опытный в 1С

    Регистрация:
    16 окт 2007
    Сообщения:
    288
    Симпатии:
    2
    Баллы:
    29
    Почитав внимательно Бол таки нашел :

    Типы применяемых функций предопределены и могут быть следующими:
    Тип
    Функции Англояз. Синоним Выполняемое действие
    Сумма Sum Вычисляет сумму выбранных по запросу зна¬чений параметра.(1)
    Среднее Avg Вычисляет среднее из выбранных по запросу значений параметра.
    Минимум Min Вычисляет минимум из выбранных по запросу значений параметра.
    Максимум Мах Вычисляет максимум из выбранных по запро¬су значений параметра.
    Счётчик Count Подсчитывает количество записей, вошедших в выборку.
    НачОст BegRest Вычисляет начальный остаток для выбранных по запросу значений параметра.(2)
    КонОст EndRest Вычисляет конечный остаток для выбранных по запросу значений параметра.(2)
    Приход Debit Вычисляет приход для выбранных но запросу значений параметра.(2)
    Расход Credit Вычисляет расход для выбранных по запросу значений параметра.(2)

    (1) Замечание: Для ресурсов оборотных регистров допускается вызывать только тип функции "Сумма".

    (2) Замечание: Типы функций НачОст, КонОст, Приход, Расход можно использовать только с параметрами, указывающими на ресурсы регистров остатков. Для ресурсов регистров остатков другие типы функций вызывать нельзя. :unsure:

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