Имя: Пароль:
1C
1С v8
Пишу отчет, выходит ошибка
0 Простенький вопросик
 
29.12.11
10:54
Отчет не окончательный, только кусок

тз = Новый ТаблицаЗначений;
тз.Колонки.Добавить("Номер",Новый ОписаниеТипов("Строка"));
тз.Колонки.Добавить("Номенклатура");
тз.Колонки.Добавить("Начкол");
тз.Колонки.Добавить("Начсум");
тз.Колонки.Добавить("Прихкол");
тз.Колонки.Добавить("Прихсум");
тз.Колонки.Добавить("Расхкол");
тз.Колонки.Добавить("Расхсум");
тз.Колонки.Добавить("Конкол");
тз.Колонки.Добавить("Консум");



    Запрос1 = Новый Запрос();
    Запрос1.Текст =                    
       
     "ВЫБРАТЬ
     |    ОприходованиеТоваров.Ссылка
     |ИЗ
     |    Документ.ОприходованиеТоваров КАК ОприходованиеТоваров
     |ГДЕ
     |    ОприходованиеТоваров.ПометкаУдаления = ЛОЖЬ" ;
   
     
      итогзапрос=Запрос1.Выполнить().Выгрузить();
для каждого стр из итогзапрос цикл
табтов=стр.Ссылка.ПолучитьОбъект().товары.выгрузить();
для каждого стр2 из табтов цикл
если табтов.количество()>0 тогда
тз.Добавить();
тз.Номенклатура=стр2.Номенклатура;
Если стр.дата < этотобъект.начпериода тогда
тз.начкол=стр2.Количество;
тз.Начсум=стр2.Сумма;
конецЕсли;
Если стр.дата >= этотобъект.начпериода и стр.дата <= этотобъект.конпериода тогда
тз.Прихкол=стр2.Количество;
тз.Прихсум=стр2.Сумма;
конецЕсли;
Если стр.дата >этотобъект.конпериода тогда
тз.Конкол=стр2.Количество;
тз.Консум=стр2.Сумма;
конецЕсли;
конецЕсли;
конеццикла;
конеццикла;

для каждого стр из тз цикл
сообщить(тз.номенклатура);
конеццикла;


Выходит следующая ошибка:
{Отчет.Отчет1.Форма.ФормаОтчета.Форма(39)}: Поле объекта не обнаружено (Номенклатура)

Что это может значить?
1 Wobland
 
29.12.11
10:56
стр=тз.Добавить();
стр.Номенклатура=
2 Wobland
 
29.12.11
10:56
поубивал бы за низкий регистр
3 vmv
 
29.12.11
10:57
поубивал бы за нелепую идентификацию и идентификаторы
4 PuhUfa
 
29.12.11
10:58
(0) >>Что это может значить?
ужас
5 Джинн
 
29.12.11
10:59
(2) Тут просто поубивать нужно. Без всяких регистров.
6 ПиН
 
29.12.11
10:59
поубивал бы...
7 Evil-Wisp
 
29.12.11
11:06
Изучай СКД.
8 andrewks
 
29.12.11
11:07
для каждого стр из тз цикл
сообщить(тз.номенклатура);
конеццикла;

ппц. занавес...
9 andrewks
 
29.12.11
11:12
(0) слухай, а ты вообще на 8-ке программил?

тз.Добавить();
тз.Номенклатура=стр2.Номенклатура;
10 Простенький вопросик
 
29.12.11
11:25
Смотрите, я поправил, отчет теперь запускается, но зависает и отвисает. Что может приводить к зависанию в этом отчете?


тз = Новый ТаблицаЗначений;
тз.Колонки.Добавить("Номер",Новый ОписаниеТипов("Строка"));
тз.Колонки.Добавить("Номенклатура");
тз.Колонки.Добавить("Начкол");
тз.Колонки.Добавить("Начсум");
тз.Колонки.Добавить("Прихкол");
тз.Колонки.Добавить("Прихсум");
тз.Колонки.Добавить("Расхкол");
тз.Колонки.Добавить("Расхсум");
тз.Колонки.Добавить("Конкол");
тз.Колонки.Добавить("Консум");



    Запрос1 = Новый Запрос();
    Запрос1.Текст =                    
       
     "ВЫБРАТЬ
     |    ОприходованиеТоваров.Ссылка
     |ИЗ
     |    Документ.ОприходованиеТоваров КАК ОприходованиеТоваров
     |ГДЕ
     |    ОприходованиеТоваров.ПометкаУдаления = ЛОЖЬ" ;
   
     
      итогзапрос=Запрос1.Выполнить().Выгрузить();
для каждого стр из итогзапрос цикл
табтов=стр.Ссылка.ПолучитьОбъект().товары.выгрузить();
для каждого стр2 из табтов цикл
если табтов.количество()>0 тогда
строкатз=тз.Добавить();
строкатз.Номенклатура=стр2.Номенклатура;
Если стр.Ссылка.ПолучитьОбъект().дата < этотобъект.начпериода тогда
строкатз.начкол=стр2.Количество;
строкатз.Начсум=стр2.Сумма;
конецЕсли;
Если стр.Ссылка.ПолучитьОбъект().дата >= этотобъект.начпериода и стр.Ссылка.ПолучитьОбъект().дата <= этотобъект.конпериода тогда
строкатз.Прихкол=стр2.Количество;
строкатз.Прихсум=стр2.Сумма;
конецЕсли;
Если стр.Ссылка.ПолучитьОбъект().дата >этотобъект.конпериода тогда
строкатз.Конкол=стр2.Количество;
строкатз.Консум=стр2.Сумма;
конецЕсли;
конецЕсли;
конеццикла;
конеццикла;

для каждого стр из тз цикл
сообщить(стр.номенклатура);
конеццикла;
11 Простенький вопросик
 
29.12.11
11:25
в смысле зависает и не отвисает
12 Wobland
 
29.12.11
11:26
(10) без форматирования смотреть не стану, учись делать правильно
13 Kreont
 
29.12.11
11:28
поставь с ИТС консоль запросов для начала
14 AllJoke
 
29.12.11
11:29
итогзапрос.количестов() - ?
табтов.количество() - ?
15 Простенький вопросик
 
29.12.11
11:29
(13)
и что? Мне ведь не с 1 документа надо данные получить. Их там заколебешься объединять.
16 СвинТуз
 
29.12.11
11:30
проще убить , что бы не мучался?
17 СвинТуз
 
29.12.11
11:31
а Вы отчет потом из ТЗ будете формировать?
18 Простенький вопросик
 
29.12.11
11:31
О, прошел отчет, номенклатуру выдал. Но 2 минуты висел. Можно ли как то ускорить? Регистры не предлагать. Аналогичный отчет по регистрам нужных функций не выполняет.
19 Простенький вопросик
 
29.12.11
11:31
(17)
Да, а что, как то иначе можно?
20 СвинТуз
 
29.12.11
11:32
(19)
можно и штаны через голову
21 BuHu
 
29.12.11
11:32
(18) запросы можно предлагать?
22 AllJoke
 
29.12.11
11:33
А чего он (отчет) вообще делает?
23 YF
 
29.12.11
11:33
(19) За "Если стр.Ссылка.ПолучитьОбъект().дата >= этотобъект.начпериода и стр.Ссылка.ПолучитьОбъект().дата <= этотобъект.конпериода тогда" расстреливать без суда и следствия

дальше не читал даже этот шедевр
24 Alex S D
 
29.12.11
11:34
(18) пихай в транзакцию все, гулять так гулять
25 Error pro
 
29.12.11
11:34
(19) Можно запрос поместит в цикл, будет лучше инфа 146%
26 Простенький вопросик
 
29.12.11
11:35
(21)
можно.
Вообще суть задачи. В 7ке есть отчет по партиям в разрезе организаций. В 8ке в разрезе организаций не работает, так как в регистре накопления сумм по партиям нет разреза организаций. Потому придется делать по документам. Вот делаю первые шаги...
27 Простенький вопросик
 
29.12.11
11:35
Конфигурация УТ 10.3
28 СвинТуз
 
29.12.11
11:35
получать остатки из документов это супер
29 Alex S D
 
29.12.11
11:35
ты бы хоть проверку на проведен / непрведен сделал чтоли
30 Простенький вопросик
 
29.12.11
11:36
(28)
в регистрах есть разрез "организация"?
31 Error pro
 
29.12.11
11:36
(30) ыыы
32 BuHu
 
29.12.11
11:37
(30) у регистратора есть реквизит организация
33 Простенький вопросик
 
29.12.11
11:38
(32)
и что, ты пробовал отчет по партиям сформировать в разрезе организаций?
34 Простенький вопросик
 
29.12.11
11:40
Я такой вопрос в 1с задавал по этому поводу
"Вопрос такой. 1с 8.2 Ут 10.3
Отчет "ведомость товаров по партиям на складах" показывает входящий остаток, которого нет.  Но он появляется только при фильтре по организациям, если фильтр не делать, что вроде как все нормально. Для создания фильтра по организациям приходится добавить в строки документдвижения.регистратор, а в условиях указать, что документдвижения.регистратор.организация = <нужная организация>. Другого способа отфильтровать по организациям я не нашел.

Соответственно возникает вопрос, как отфильтровать отчет по партиям по организациям так, чтобы он работал правильно? Или может есть другой подобный отчет, правильно работающий?
"

В итоге получил ответ непосредственно из 1с.


"Данное поведение отчета - это особенность поведения платформы.
Особенность описана на диске ИТС, статья "Расчет итогов по полям остатка", пункт "Итоги по реквизиту регистратора".
Выдержка из статьи:
Итоги по реквизиту регистратора корректно рассчитаны быть не могут. Если требуется вывести в результат остатки с указанием реквизита регистратора, то следует получать группировку по регистратору и выводить в результат только реквизит регистратора, не выводя самого регистратора.

В конфигурации УТ 10.3 не ведется партионный учет в разрезе организаций, поэтому суммовые остатки по складу в разрезе организаций получить нельзя.
"

Так что знатокам регистров попрошу не выделываться.
35 Простенький вопросик
 
29.12.11
11:42
Кстати я сам нашел уже как ускорить, надо дату в запрос выводить, а не из документа по ссылке брать.
36 palpetrovich
 
29.12.11
11:48
(35) молодец, растешь :)
37 СвинТуз
 
29.12.11
12:14
показывает входящий остаток, которого нет.
Для создания фильтра по организациям приходится добавить в строки документдвижения.регистратор
Так что знатокам регистров попрошу не выделываться.


а мы и не выделываемся
бей себе шишки на лбу