Имя: Пароль:
1C
1С v8
Не выводится отчет
0 Константин536
 
16.03.15
11:48
Здравствуйте.

Помогите пожалуйста разобраться в чем проблема.  Написал код для создания отчета вручную.
Знаю, что многие скажут что можно через компоновку данных это сделать или же через конструктор запроса. Но я пытаюсь освоить также и написание вручную.

Вот код:
&НаКлиенте
Процедура Сформировать(Команда)
    ВывестиТабДок(ТабДок)
КонецПроцедуры

&НаСерверебезКонтекста
Процедура ВывестиТабДок(ТабДок)
    
    Макет = Отчеты.ОтчетПоОстаткам.ПолучитьМакет("макет");
    ОблШапка = Макет.ПолучитьОбласть("Шапка");
    ОблШапка.Параметры.ДатаОтчета = ТекущаяДата();
    ТабДок.Вывести(ОблШапка);
    ОблЭлемент = Макет.ПолучитьОбласть("Элемент");
    
     Выборка = РегистрыНакопления.Приход_РасходПоСкладам.Остатки();
    
     Пока Выборка.Следующий() Цикл
         ОблЭлемент.Товар = Выборка.Товар;
         ОблЭлемент.Количество = Выборка.КоличествоОстаток;
         ОблЭлемент.Сумма = Выборка.СуммаОстаток;
         ТабДок.Вывести(ОблЭлемент);
     КонецЦикла;
     КонецПроцедуры

Проверка модуля ошибок не выявила, но вот при выводе отчета появляется ошибка:
"метод объекта не обнаружен(Следующий)". Что это значит?


И еще вопрос: можно ли сюда прикреплять скриншоты экрана для полноты картины?
1 prog-Igor
 
16.03.15
11:51
Ошибка в (Выборка = РегистрыНакопления.Приход_РасходПоСкладам.Остатки();)
2 ДенисЧ
 
16.03.15
11:53
Выборка = РегистрыНакопления.Приход_РасходПоСкладам.Остатки();
    
     Пока Выборка.Следующий() Цикл

Это что такое?? О_о
3 Ненавижу 1С
 
гуру
16.03.15
11:53
(0) Возвращаемое значение:

Тип: ТаблицаЗначений.
4 1976vas
 
16.03.15
12:32
(3) + Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс строки (нумерация с 0).
5 Константин536
 
16.03.15
19:40
Я что то не пойму:
почему здесь можно так написать:

"Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
ОблЭлемент.Параметры.Наименование = Выборка.Наименование;
           ОблЭлемент.Параметры.Цена = Выборка.ЦенаПродажи;
           ТабДок.Вывести(ОблЭлемент);
       КонецЦикла;"

А вот так уже нельзя:
"Выборка = РегистрыНакопления.Приход_РасходПоСкладам.Остатки.Выбрать();
    
     Пока Выборка.Следующий() Цикл
      ОблЭлемент.Параметры.Товар = Выборка.Товар;
         ОблЭлемент.Параметры.Количество = Выборка.КоличествоОстаток;
      ОблЭлемент.Параметры.Сумма = Выборка.СуммаОстаток;
         ТабДок.Вывести(ОблЭлемент);
     КонецЦикла;"

В первом случае я обращаюсь к таблице Справочник.Номенклатура и уже из нее выбираю параметры.

А во втором я обращаюсь к таблице Регистрнакопления.Остатки и из нее выбираю значения.

Прошу доступно объяснить в чем проблема и что не так?
6 ДенисЧ
 
16.03.15
19:42
(5) Не так только две вещи: ты не читаешь документацию и ты (необоснованно) подозреваешь 1с в наличии логики.
7 Новый участник
 
16.03.15
19:42
// Голосом Димы Соколова из Пельменей

Вообще не так!

Разницу между регистром и справочником кто изучать будет???
8 D_E_S_131
 
16.03.15
21:49
Следующая ошибка будет ОблЭлемент.Товар (поле "Товар" не обнаружено)
9 Константин536
 
16.03.15
23:55
Фух.....
кое как вышло....
Вот текст:
*Процедура ВывестиТабДок(ТабДок)
    
    Макет = Отчеты.ОтчетПоОстаткам.ПолучитьМакет("макет");
    ОблШапка = Макет.ПолучитьОбласть("Шапка");
    ОблШапка.Параметры.ДатаОтчета = ТекущаяДата();
    ТабДок.Вывести(ОблШапка);
    ОблЭлемент = Макет.ПолучитьОбласть("Элемент");
        
     Запрос = Новый Запрос;
     Запрос.Текст = "ВЫБРАТЬ
     |Товар как Товар,
     |КоличествоОстаток как КоличествоОстаток,
     |СуммаОстаток как СуммаОстаток
     |ИЗ
     |РегистрНакопления.Приход_РасходПоСкладам.Остатки";
    
     Результат = Запрос.Выполнить();
     Выборка = Результат.Выбрать();
          
     Пока Выборка.Следующий() цикл
        
      ОблЭлемент.Параметры.Товар = Выборка.Товар;
         ОблЭлемент.Параметры.Количество = Выборка.КоличествоОстаток;
      ОблЭлемент.Параметры.Сумма = Выборка.СуммаОстаток;
         ТабДок.Вывести(ОблЭлемент);
     КонецЦикла;
КонецПроцедуры
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn