Имя: Пароль:
1C
1C 7.7
v7: Внешний отчет по документу
0 julia_rostov
 
17.08.12
16:01
Народ найдите ошибку. Есть документ Акт, надо внешним отчетом вывести на печать все документе в указанном
периоде. Напишите что я делаю не так.
Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;

   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Обрабатывать НеПомеченныеНаУдаление;
   |Без итогов;
   |АктТранспортный = Документ.АктТранспортный.ТекущийДокумент;
   |Фирма = Документ.АктТранспортный.Фирма;  
   |Группировка АктТранспортный;
   |Условие(Фирма = ВыбФирма);
   |";
   
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;  
   
   Док = СоздатьОбъект("Документ.АктТранспортный");
   СпрК = СоздатьОбъект("Справочник.Клиенты");

   Пока Запрос.Группировка() = 1 Цикл
       Док.НайтиДокумент(Запрос.АктТранспортный);  
   КонецЦикла;
   
   Если СпрК.НайтиПоКоду(65481) = 1 Тогда
       Клиент = СпрК.ТекущийЭлемент();
   КонецЕсли;
   
       Таб = СоздатьОбъект("Таблица");  
       Таб.ИсходнаяТаблица("Печать_Акта");
       Итого=Док.Сумма;
       БезНалога="00,00";
       Всего=Док.Сумма;
       ЕДИЗМ="Км";
       Ном="1";
       ОткудаВыезд=Док.ОткудаВыезд;
       КудаПриехал=Док.КудаПриехал;
       
       Таб.ВывестиСекцию("Заголовок");  
       Таб.ВывестиСекцию("Заказчик");  
       Таб.ВывестиСекцию("Вод");
       Таб.ВывестиСекцию("Шапка");
       Таб.ВывестиСекцию("Строка");
       Таб.ВывестиСекцию("Итого");
       Таб.ВывестиСекцию("ИтогоБезНалога");
       Таб.ВывестиСекцию("Всего");
       Таб.ВывестиСекцию("СуммаПР");
       Таб.ВывестиСекцию("Подвал")    ;
       Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
       Таб.ПараметрыСтраницы(2,,, 10, 0, 0, 0,,,,,);
       Таб.ТолькоПросмотр(1);
       Таб.Показать("Печать_Акта", "");
   КонецПроцедуры
Ошибки:Поле агрегатного объекта не обнаружено (Клиент)
Поле агрегатного объекта не обнаружено (Клиент)
Поле агрегатного объекта не обнаружено (Клиент)
Значение не представляет агрегатный объект (Полное_Назв)
Значение не представляет агрегатный объект (Юр_Адрес)
1 Eugene_life
 
17.08.12
16:02
Если СпрК.НайтиПоКоду("65481") = 1 Тогда
2 aka AMIGO
 
17.08.12
16:04
отладчик-то шустрее работает, чем миста..
правда, там немного и думать надо
3 Eugene_life
 
17.08.12
16:05
Вот тут:
Пока Запрос.Группировка() = 1 Цикл
   Док.НайтиДокумент(Запрос.АктТранспортный);  
КонецЦикла;
Ты обходишь весь свой запрос. И потом вдруг начинаешь обрабатывать его результат.
А это - последнее значение по сути только. Вся обработка результата должна быть ВНУТРИ этого цикла
4 Надсмотрщик
 
17.08.12
16:19
(0) За такой код надо СНЯТЬ ШТАНЫ и ВЫПОРОТЬ

Если СпрК.НайтиПоКоду(65481) = 1 Тогда
       Клиент = СпрК.ТекущийЭлемент();
   КонецЕсли;
5 Mikeware
 
17.08.12
16:21
(4) что ты подразумеваешь под словом "выпороть"?
6 Попытка1С
 
17.08.12
16:27
Юля не своим делом занимается..
7 Надсмотрщик
 
17.08.12
16:28
(5) Пока "малолетка" - розгами.        :-))
8 Mikeware
 
17.08.12
16:31
(7) можно побить по попе животом...
9 Надсмотрщик
 
17.08.12
16:33
(8) И тебя то же! За богохульство...
10 Mikeware
 
17.08.12
16:35
(6) я ей предлагал перейти на вдвое более высокооплачиваемую работу...
ей подойдет...
11 Надсмотрщик
 
17.08.12
16:36
(10) Здесь я тебя поддерживаю      :-))
12 Азат
 
17.08.12
16:41
(0) Юляшка, давай косарик на киви - помогу)
13 julia_rostov
 
17.08.12
16:46
Всем спасибо я сама разобралась
14 Злопчинский
 
17.08.12
17:39
ну как только речь зашла о "выпороть" - все сразу завертелось. Вывод - плохих девочек надо чаще бить по попе.. животом.
15 Cthulhu
 
18.08.12
13:29
1) метод "НайтиДокумент" можно применять только к объектам "Документ" неопределенного вида.
2) использовать запрос для выборки документов - глупо, "ВыбратьДокументы"+"ПолучитьДокумент" работатет и оптимальнее, и диалог работы оформляется "живее" - пользователь нервничает гораздо меньше.
3) и вообще, почему-то весь приведенный код кажется слепленным криво (остальные ошибки в связи с пп.1-2 даже упоминать не имеет смысла).
16 miki
 
18.08.12
20:12
(15)
1) - неправда.
2) - не очевидно.
3) без комментов, в связи с пп.1-2 :))
17 Cthulhu
 
18.08.12
20:45
(16):
1) для гарантированного отсутствия возникновения ошибки при поиске ссылки на документ - правда.
2) очевидно.
3) давай, досвиданья.
18 miki
 
18.08.12
21:09
(17)
2) Период - год, нужных доков (фирма/Договор контрагента) - пять, остальных - туева хуча. Будешь выборкой перебирать?
19 Cthulhu
 
18.08.12
21:17
(18): ну, проверь и сравни... ;)
причем это никак не отменяет справедливости второй части п.2 в (15).
20 Neg
 
18.08.12
21:26
(0) Юля, во вторник еду к тебе.
21 Эльниньо
 
18.08.12
23:40
(20) Бить по попе животом?