Имя: Пароль:
1C
 
Значение не является значением объектного типа
,
0 progaoff
 
17.11.16
14:39
Макет             = ПолучитьМакет("Макет");
ОбластьШапка       = Макет.ПолучитьОбласть("Шапка");
ОбластьЗаголовок  = Макет.ПолучитьОбласть("Заголовок");
ОбластьЗаголовок1 = Макет.ПолучитьОбласть("Заголовок1");
ОбластьДанные      = Макет.ПолучитьОбласть("Данные");
ОбластьИтоги      = Макет.ПолучитьОбласть("Итоги");
Выдает ошибку Значение не является значением объектного типа. Хотя ничего не менялось
1 Timon1405
 
17.11.16
14:41
продолжайте наблюдения
2 Ёпрст
 
17.11.16
14:41
точное описание ошибки покажи
3 Ёпрст
 
17.11.16
14:42
и.. макет получай через
4 Ёпрст
 
17.11.16
14:42
ВнешОбработка.ПолучитьОбъект
5 Ёпрст
 
17.11.16
14:44
ну и для уф в серверной проце
РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
6 progaoff
 
17.11.16
15:02
(2) {Форма.ФормаОтчета.Форма(9)}: Значение не является значением объектного типа (ПолучитьОбласть)
ОбластьШапка       = Макет.ПолучитьОбласть("Шапка");
7 lera01
 
17.11.16
15:10
А у тебя там нигде реквизит Макет не используется?
8 progaoff
 
17.11.16
15:12
(7) нет
9 Ёпрст
 
17.11.16
15:13
(6) обычные формы ? основной реквищит формы есть ?
10 progaoff
 
17.11.16
15:14
(9) Нашел) спасибо за полсказку (9)
11 progaoff
 
17.11.16
15:15
подсказку*
12 progaoff
 
17.11.16
15:17
Еще вопрос можно?) (9)
13 Ёпрст
 
17.11.16
15:20
спрашивайте
14 progaoff
 
17.11.16
15:21
в табличном документе в моем случае, как можно свернуть товары по группам?
15 Ёпрст
 
17.11.16
15:22
(14) дык начатьГруппировкуСтрок
16 Ёпрст
 
17.11.16
15:22
НачатьГруппуСтрок, точнее
17 progaoff
 
17.11.16
15:23
Процедура КнопкаСформироватьНажатие(Кнопка)

    
    
ТабличныйДокумент = ЭлементыФормы.ПолеТабличногоДокумента1;
ТабличныйДокумент.Очистить();
Макет             = ПолучитьМакет("Макет");
ОбластьШапка       = Макет.ПолучитьОбласть("Шапка");
ОбластьЗаголовок  = Макет.ПолучитьОбласть("Заголовок");
ОбластьЗаголовок1 = Макет.ПолучитьОбласть("Заголовок1");
ОбластьДанные      = Макет.ПолучитьОбласть("Данные");
ОбластьИтоги      = Макет.ПолучитьОбласть("Итоги");

Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
              |    ИнвентаризацияТовары.Номенклатура КАК Номенклатура,
              |    СУММА(ИнвентаризацияТовары.КоличествоКнижн) КАК КоличествоКнижн,
              |    СУММА(ИнвентаризацияТовары.СуммаКнижн) КАК СуммаКнижн,
              |    СУММА(ИнвентаризацияТовары.КоличествоФакт) КАК КоличествоФакт,
              |    СУММА(ИнвентаризацияТовары.СуммаФакт) КАК СуммаФакт,
              |    СУММА(ИнвентаризацияТовары.КоличествоКнижн - ИнвентаризацияТовары.КоличествоФакт) КАК РазницаКоличество,
              |    СУММА(ИнвентаризацияТовары.СуммаКнижн - ИнвентаризацияТовары.СуммаФакт) КАК РазницаПоСумме,
              |    СУММА(ВЫБОР
              |            КОГДА ИнвентаризацияТовары.КоличествоКнижн > ИнвентаризацияТовары.КоличествоФакт
              |                ТОГДА ИнвентаризацияТовары.КоличествоКнижн - ИнвентаризацияТовары.КоличествоФакт
              |            ИНАЧЕ 0
              |        КОНЕЦ) КАК Недостача,
              |    СУММА(ВЫБОР
              |            КОГДА ИнвентаризацияТовары.КоличествоКнижн < ИнвентаризацияТовары.КоличествоФакт
              |                ТОГДА ИнвентаризацияТовары.КоличествоФакт - ИнвентаризацияТовары.КоличествоКнижн
              |            ИНАЧЕ 0
              |        КОНЕЦ) КАК Излишки,
              |    СУММА(ВЫБОР
              |            КОГДА ИнвентаризацияТовары.СуммаКнижн > ИнвентаризацияТовары.СуммаФакт
              |                ТОГДА ИнвентаризацияТовары.СуммаКнижн - ИнвентаризацияТовары.СуммаФакт
              |            ИНАЧЕ 0
              |        КОНЕЦ) КАК НедостачаПоСумме,
              |    СУММА(ВЫБОР
              |            КОГДА ИнвентаризацияТовары.СуммаКнижн < ИнвентаризацияТовары.СуммаФакт
              |                ТОГДА ИнвентаризацияТовары.СуммаФакт - ИнвентаризацияТовары.СуммаКнижн
              |            ИНАЧЕ 0
              |        КОНЕЦ) КАК ИзлишкиПоСумме,
              |    ИнвентаризацияТовары.Цена КАК ЦенаЗакупки,
              |    Инвентаризация.Ссылка,
              |    Инвентаризация.СкладКомпании
              |ПОМЕСТИТЬ ТабИнвентаризация
              |ИЗ
              |    Документ.Инвентаризация КАК Инвентаризация
              |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Инвентаризация.Товары КАК ИнвентаризацияТовары
              |        ПО Инвентаризация.Ссылка = ИнвентаризацияТовары.Ссылка
              |ГДЕ
              |    Инвентаризация.Ссылка = &Документ
              |
              |СГРУППИРОВАТЬ ПО
              |    ИнвентаризацияТовары.Номенклатура,
              |    ИнвентаризацияТовары.Цена,
              |    Инвентаризация.Ссылка,
              |    Инвентаризация.СкладКомпании
              |;
              |
              |////////////////////////////////////////////////////////////////////////////////
              |ВЫБРАТЬ
              |    ОстаткиТоваровКомпании.Номенклатура,
              |    СУММА(ОстаткиТоваровКомпании.Количество) КАК Количество,
              |    СУММА(ОстаткиТоваровКомпании.СуммаРозн) КАК СуммаРозн,
              |    СУММА(0) КАК Поле1,
              |    СУММА(0) КАК Поле2,
              |    СУММА(0) КАК Поле3,
              |    СУММА(0) КАК Поле4,
              |    СУММА(0) КАК Поле5,
              |    СУММА(0) КАК Поле6,
              |    СУММА(0) КАК Поле7,
              |    СУММА(0) КАК Поле8,
              |    СУММА(0) КАК Поле9,
              |    ОстаткиТоваровКомпании.ХозОперация
              |ПОМЕСТИТЬ ТабПревышения
              |ИЗ
              |    РегистрНакопления.ОстаткиТоваровКомпании КАК ОстаткиТоваровКомпании
              |ГДЕ
              |    ОстаткиТоваровКомпании.Период МЕЖДУ &НачалоПериода И &КонецПериода
              |    И ОстаткиТоваровКомпании.ХозОперация = &ХозОперация
              |    И ОстаткиТоваровКомпании.Номенклатура В ИЕРАРХИИ(&Номенклатура)
              |    И ОстаткиТоваровКомпании.СкладКомпании = &Склад
              |
              |СГРУППИРОВАТЬ ПО
              |    ОстаткиТоваровКомпании.Номенклатура,
              |    ОстаткиТоваровКомпании.ХозОперация
              |;
              |
              |////////////////////////////////////////////////////////////////////////////////
              |ВЫБРАТЬ
              |    ТабИнвентаризация.Номенклатура КАК Номенклатура,
              |    ЕСТЬNULL(ТабИнвентаризация.КоличествоКнижн, 0) КАК КоличествоКнижн,
              |    ЕСТЬNULL(ТабИнвентаризация.СуммаКнижн, 0) КАК СуммаКнижн,
              |    ЕСТЬNULL(ТабИнвентаризация.КоличествоФакт, 0) КАК КоличествоФакт,
              |    ЕСТЬNULL(ТабИнвентаризация.СуммаФакт, 0) КАК СуммаФакт,
              |    ЕСТЬNULL(ТабИнвентаризация.РазницаКоличество, 0) КАК РазницаКоличество,
              |    ЕСТЬNULL(ТабИнвентаризация.РазницаПоСумме, 0) КАК РазницаПоСумме,
              |    ЕСТЬNULL(ТабПревышения.Количество, 0) КАК Количество,
              |    ЕСТЬNULL(ТабПревышения.СуммаРозн, 0) КАК СуммаРозн,
              |    ЕСТЬNULL(ТабИнвентаризация.Недостача, 0) КАК Недостача,
              |    ЕСТЬNULL(ТабИнвентаризация.Излишки, 0) КАК Излишки,
              |    ЕСТЬNULL(ТабИнвентаризация.НедостачаПоСумме, 0) КАК НедостачаПоСумме,
              |    ЕСТЬNULL(ТабИнвентаризация.ИзлишкиПоСумме, 0) КАК ИзлишкиПоСумме,
              |    ЕСТЬNULL(ТабИнвентаризация.ЦенаЗакупки, 0) КАК ЦенаЗакупки,
              |    ТабИнвентаризация.Номенклатура.Родитель.Родитель КАК Группа
              |ИЗ
              |    ТабИнвентаризация КАК ТабИнвентаризация
              |        ЛЕВОЕ СОЕДИНЕНИЕ ТабПревышения КАК ТабПревышения
              |        ПО ТабИнвентаризация.Номенклатура = ТабПревышения.Номенклатура
              |
              |СГРУППИРОВАТЬ ПО
              |    ТабИнвентаризация.Номенклатура,
              |    ЕСТЬNULL(ТабПревышения.Количество, 0),
              |    ЕСТЬNULL(ТабПревышения.СуммаРозн, 0),
              |    ТабИнвентаризация.Номенклатура.Родитель.Родитель,
              |    ЕСТЬNULL(ТабИнвентаризация.КоличествоКнижн, 0),
              |    ЕСТЬNULL(ТабИнвентаризация.СуммаКнижн, 0),
              |    ЕСТЬNULL(ТабИнвентаризация.КоличествоФакт, 0),
              |    ЕСТЬNULL(ТабИнвентаризация.СуммаФакт, 0),
              |    ЕСТЬNULL(ТабИнвентаризация.РазницаКоличество, 0),
              |    ЕСТЬNULL(ТабИнвентаризация.РазницаПоСумме, 0),
              |    ЕСТЬNULL(ТабИнвентаризация.Недостача, 0),
              |    ЕСТЬNULL(ТабИнвентаризация.Излишки, 0),
              |    ЕСТЬNULL(ТабИнвентаризация.НедостачаПоСумме, 0),
              |    ЕСТЬNULL(ТабИнвентаризация.ИзлишкиПоСумме, 0),
              |    ЕСТЬNULL(ТабИнвентаризация.ЦенаЗакупки, 0)
              |ИТОГИ
              |    СУММА(КоличествоКнижн),
              |    СУММА(СуммаКнижн),
              |    СУММА(КоличествоФакт),
              |    СУММА(СуммаФакт),
              |    СУММА(РазницаКоличество),
              |    СУММА(РазницаПоСумме),
              |    СУММА(Количество),
              |    СУММА(СуммаРозн),
              |    СУММА(Недостача),
              |    СУММА(Излишки),
              |    СУММА(НедостачаПоСумме),
              |    СУММА(ИзлишкиПоСумме),
              |    СУММА(ЦенаЗакупки)
              |ПО
              |    
              |    Номенклатура
              |АВТОУПОРЯДОЧИВАНИЕ";
СписокНоменклатуры = Новый СписокЗначений;
СписокНоменклатуры.Добавить(Справочники.Номенклатура.НайтиПоКоду("00028934"));
СписокНоменклатуры.Добавить(Справочники.Номенклатура.НайтиПоКоду("00020940"));    
СписокНоменклатуры.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000029"));
СписокНоменклатуры.Добавить(Справочники.Номенклатура.НайтиПоКоду("00028743"));
СписокНоменклатуры.Добавить(Справочники.Номенклатура.НайтиПоКоду("00028688"));

Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода" , КонецПериода);
Запрос.УстановитьПараметр("ХозОперация"     , Справочники.ХозОперации.НайтиПоКоду("020503"));
Запрос.УстановитьПараметр("Номенклатура" , СписокНоменклатуры);
Запрос.УстановитьПараметр("Документ"     , Документ);
Запрос.УстановитьПараметр("Склад"         , Склад);      
ТабличныйДокумент.Вывести(ОбластьШапка);
ТабличныйДокумент.Вывести(ОбластьЗаголовок);
ТабличныйДокумент.Вывести(ОбластьЗаголовок1);

Результат = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Номенклатура");

//ВыборкаОбщийИтог = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  
Пока Результат.Следующий() Цикл
    ТабличныйДокумент.НачатьАвтогруппировкуСтрок();
  
    ОбластьДанные.Параметры.Номенклатура         = Результат.Номенклатура;
    ОбластьДанные.Параметры.КоличествоКнижн        = Результат.КоличествоКнижн;
    ОбластьДанные.Параметры.СуммаКнижн            = Результат.СуммаКнижн;
    ОбластьДанные.Параметры.КолФакт             = Результат.КоличествоФакт;
    ОбластьДанные.Параметры.СуммаФакт            = Результат.СуммаФакт;
    ОбластьДанные.Параметры.КолВоИзлишки        = Результат.Излишки;
    ОбластьДанные.Параметры.СуммаИзлишки        = Результат.ИзлишкиПоСумме;
    ОбластьДанные.Параметры.КолВоНедостача      = Результат.Недостача;
    ОбластьДанные.Параметры.СуммаНедостача      = Результат.НедостачаПоСумме;
    ОбластьДанные.Параметры.КоличествоПревышения= Результат.Количество;
    ОбластьДанные.Параметры.СуммаПревышения     = Результат.СуммаРозн;
    ОбластьДанные.Параметры.КоличествоИтог      = Результат.КоличествоФакт;
    ОбластьДанные.Параметры.СуммаИтог           = Результат.СуммаФакт;
    
    
    ТабличныйДокумент.ПоказатьУровеньГруппировокСтрок(3);
    ТабличныйДокумент.Вывести(ОбластьДанные,2,Истина);
    ТабличныйДокумент.ЗакончитьАвтогруппировкуСтрок();

    
        
КонецЦикла;


    ТЗ = Запрос.Выполнить().Выгрузить();
    ОбластьИтоги.Параметры.ИтогКоличество            = ТЗ.Итог("КоличествоФакт");
    ОбластьИтоги.Параметры.ИтогСуммаФакт           = ТЗ.Итог("СуммаФакт");
    ОбластьИтоги.Параметры.ИтогКоличествоКнижн     = ТЗ.Итог("КоличествоКнижн");
    ОбластьИтоги.Параметры.ИтогСуммаКнижн          = ТЗ.Итог("СуммаКнижн");
    ОбластьИтоги.Параметры.ИтогКолВоИзлишки        = ТЗ.Итог("Излишки");
    ОбластьИтоги.Параметры.ИтогСуммаИзлишки        = ТЗ.Итог("ИзлишкиПоСумме");
    ОбластьИтоги.Параметры.ИтогКолВоНедостача       = ТЗ.Итог("Недостача");
    ОбластьИтоги.Параметры.ИтогСуммаНедостача      = ТЗ.Итог("НедостачаПоСумме");
    ОбластьИтоги.Параметры.ИтогКоличествоПревышения= ТЗ.Итог("Количество");
    ОбластьИтоги.Параметры.ИтогСуммаПревышения     = ТЗ.Итог("СуммаРозн");
    
    ТабличныйДокумент.Вывести(ОбластьИтоги);
    ТабличныйДокумент.ОтображатьГруппировки = Истина;
    ТабличныйДокумент.ОтображатьЗаголовки = Истина;
  
  
КонецПроцедуры
18 Ёпрст
 
17.11.16
15:26
ну или запихать запрос в построительотчета, он сам всё выведет как надо
19 lera01
 
17.11.16
15:26
Зачем ты ее в цикл впер?
20 progaoff
 
17.11.16
15:45
Все равно не сворачивает строки
21 Ёпрст
 
17.11.16
15:46
(20) сворачивать то нечего, обходи 2 группировки в результатах, а не одну, как сейчас.
22 progaoff
 
17.11.16
15:51
(21) ? можно носом ткнуть?
23 Timon1405
 
17.11.16
16:02
(22) сделайте новую обработку, вызовите в модуле в любом месте "конструктор запроса с обработкой результата", на первой вкладке укажите "вывод в табличный документ", скопируйте туда запрос, правильно сделайте группировки, платформа сама вам сделает макет и обход результата
24 progaoff
 
17.11.16
16:38
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьНоменклатура = Макет.ПолучитьОбласть("Номенклатура");
    ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1;
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();

    ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

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

    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
25 progaoff
 
17.11.16
16:40
(23) Сделал - конструктором. все равно не чем развернуть строки
26 Ёпрст
 
17.11.16
16:42
(24)

Пока ВыборкаНоменклатура.Следующий() Цикл
        ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура);
        ТабДок.Вывести(ОбластьНоменклатура, ВыборкаНоменклатура.Уровень());
        ВыборкаДетальныеЗаписи = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
         Пока ВыборкаДетальныеЗаписи.Следующий  Цикл
               ...
               ТабДок.Вывести(ОбластьНоменклатура, ВыборкаДетальныеЗаписи.Уровень());
          КонецЦикла;
    КонецЦикла;
27 progaoff
 
17.11.16
17:20
28 progaoff
 
17.11.16
17:21
Только группы без товаров(
29 Ёпрст
 
17.11.16
17:56
(28) дык во втором цикле заполни параметры области данными из второй выборки
30 progaoff
 
18.11.16
18:52
(29) Получается что вся номенклатура и такое же количество групп
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший