Имя: Пароль:
1C
1C 7.7
v7: Внешний отчет в 7.7
0 msk-07
 
22.08.12
22:12
Добрый вечер. Надеюсь на вашу помощь,  здесь попросили изменить внешний отчет в 7.7....короче нужно добавить название документа....и я не могу понять где в коде за это отвечает какая переменная, чтобы ее запихнуть в макет, может кто подскажет.... В макете выделено место где должно быть название документа, а рядом <Контрагент>, контрагент данного документа, я там понимаю, код уже прописан к этому документу, просто нужно понять где именно. Подскажите пожалуйста! Заранее спасибо!



http://s40.radikal.ru/i087/1208/58/f37b1894b6ef.jpg

Перем СтрокаТек;

Функция НайтиКонтрагента(Опер) Далее

Процедура Сформировать()

ФИОПредставителя = ФИО(Склад);
Должность = СокрЛП(Склад.Должность);
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Орган = СокрЛП(Орг.ПолнНаименование);
ФирмаОКПО = Орг.ОКПО;


Если Тип=1 Тогда
Если ПустоеЗначение(МХ)=0 Тогда
Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МХ);
КонецЕсли;
Ит.ВыполнитьЗапрос(ДатаНач,ДатаКон,СчетПоКоду("41.2"));
Иначе
Ит.ВыполнитьЗапрос(ДатаНач,ДатаКон,СчетПоКоду("41.1"));
КонецЕсли; Сальдо = Ит.СНД();

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

Опер = СоздатьОбъект("Операция");
Если Тип=1 Тогда
Если ПустоеЗначение(МХ)=0 Тогда
Опер.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МХ);
КонецЕсли; Опер.ВыбратьОперацииСПроводками(ДатаНач,ДатаКон,"41.2");
Иначе
Опер.ВыбратьОперацииСПроводками(ДатаНач,ДатаКон,"41.1");
КонецЕсли;

Пока Опер.ПолучитьПроводку() = 1 Цикл
Если (Опер.Дебет.Счет = СчетПоКоду("41.1")) или (Опер.Дебет.Счет = СчетПоКоду("41.2")) Тогда
Если Опер.Документ.Вид() <> "Операция" Тогда ТабПрих.НоваяСтрока();


ТабПрих.Приход = Опер.Сумма;
ТабПрих.ДатаДокум = Опер.ДатаОперации;
ТабПрих.НомерДок = Опер.Документ.НомерДок;

Если Опер.Документ.Вид() = "Сторно" Тогда
ТабПрих.Контрагент = Опер.Документ.СторнируемыйДокумент.Контрагент;
ИначеЕсли Опер.Документ.Вид() = "ЗакрытиеМесяца" Тогда
ТабПрих.Контрагент = "Корректир. средней ст-ти";
Иначе
ТабПрих.Контрагент = НайтиКонтрагента(Опер);
КонецЕсли; ТабПрих.Документ = Опер.Документ;
Иначе ТабПрих.НоваяСтрока();
ТабПрих.Приход = Опер.Сумма;
ТабПрих.ДатаДокум = Опер.ДатаОперации;
ТабПрих.НомерДок = Прав(Опер,6);

ТабПрих.Контрагент = НайтиКонтрагента(Опер);
ТабПрих.Документ = Опер.Документ;
КонецЕсли;
ИначеЕсли (Опер.Кредит.Счет = СчетПоКоду("41.1")) или (Опер.Кредит.Счет = СчетПоКоду("41.2")) Тогда
Если Опер.Документ.Вид() <> "Операция" Тогда
ТабРасх.НоваяСтрока();
ТабРасх.Расход = Опер.Сумма;

Если Опер.Документ.Вид() = "Сторно" Тогда
ТабРасх.Контрагент = Опер.Документ.СторнируемыйДокумент.Контрагент;
ИначеЕсли Опер.Документ.Вид() = "ЗакрытиеМесяца" Тогда
ТабРасх.Контрагент = "Корректир. средней ст-ти";
Иначе
ТабРасх.Контрагент = НайтиКонтрагента(Опер);
КонецЕсли;

ТабРасх.ДатаДокум = Опер.ДатаОперации;
ТабРасх.НомерДок = Опер.Документ.НомерДок;
ТабРасх.Документ = Опер.Документ;
Иначе ТабРасх.НоваяСтрока();
ТабРасх.Расход = Опер.Сумма;
ТабРасх.ДатаДокум = Опер.ДатаОперации;
ТабРасх.НомерДок = Прав(Опер,6);
ТабРасх.Контрагент = НайтиКонтрагента(Опер);
ТабРасх.Документ = Опер.Документ;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ТабПрих.Сортировать("ДатаДокум");
ТабРасх.Сортировать("ДатаДокум");
ТабПрих.Свернуть("НомерДок,Контрагент,ДатаДокум,Документ","Приход");
ТабРасх.Свернуть("НомерДок,Контрагент,ДатаДокум,Документ","Расход");
ЧислоДок=0;


ТабПрих.ВыбратьСтроки();

Пока ТабПрих.ПолучитьСтроку()=1 Цикл
ЧислоДок=ЧислоДок+1;
Контрагент = ТабПРих.Контрагент;
ДатаДок = ТабПРих.ДатаДокум;
НомерДок = ТабПРих.НомерДок;
Сумма = ТабПРих.Приход;
Таб.ВывестиСекцию("Строка");
ИтогПриход = ИтогПриход + ТабПРих.Приход;
КонецЦикла;


Таб.ВывестиСекцию("ИтогоПоПриходу");
ТабРасх.ВыбратьСтроки();

Пока ТабРасх.ПолучитьСтроку()=1 Цикл
ЧислоДок=ЧислоДок+1;
Контрагент = ТабРасх.Контрагент;
ДатаДок = ТабРасх.ДатаДокум;
НомерДок = ТабРасх.НомерДок;
Сумма = ТабРасх.Расход;

Если ТабРасх.НомерСтроки = 1 Тогда
Таб.ВывестиСекцию("Расход");
Таб.ВывестиСекцию("строкаР");
ИтогРасход = ИтогРасход + ТабРасх.РАсход;
Иначе Таб.ВывестиСекцию("строкаР");
ИтогРасход = ИтогРасход + ТабРасх.РАсход;
КонецЕсли;
КонецЦикла;

Таб.ВывестиСекцию("ИтогоПоРасходу");
Таб.ВывестиСекцию("Подвал");
Таб.ТолькоПросмотр(1);
Таб.ПараметрыСтраницы(,,,20,,,,,, 1);
Таб.Показать("Товарный отчёт","");

КонецПроцедуры

Процедура ПриОткрытии()

ДатаСост=ТекущаяДата();
ДатаНач=НачалоПериодаБИ();
ДатаКон=КонецПериодаБИ();

КонецПроцедуры


Функция НайтиКонтрагента(Опер)

Опер1 = СоздатьОбъект("Операция");
Опер1.НайтиОперацию(Опер.Документ);
Опер1.ВыбратьПроводки();

Пока Опер1.ПолучитьПроводку() = 1 Цикл

Если ПустоеЗначение(Опер1.Дебет.Контрагенты)=0 Тогда
Контрагент = Опер1.Дебет.Контрагенты;
Прервать; ИначеЕсли ПустоеЗначение(Опер1.Кредит.Контрагенты)=0 Тогда
Контрагент = Опер1.Кредит.Контрагенты;
Прервать;
Иначе Контрагент = Опер1.Содержание;
КонецЕсли;
КонецЦикла;
Возврат Контрагент;

КонецФункции
1 ДенисЧ
 
22.08.12
22:15
Русские слова Опер.Документ ни о чём не говорят?
2 msk-07
 
22.08.12
22:15
Пробовал, выдает ошибку
3 ДенисЧ
 
22.08.12
22:17
Ошибку выдаёт не 1сный код, а кое-какой другой...
4 msk-07
 
22.08.12
22:19
<Объект не найден>(54583/)
5 msk-07
 
22.08.12
22:19
Явно 1С
6 msk-07
 
22.08.12
22:20
Может что-то в свойствах надо прописывать в макете?
7 Рэйв
 
22.08.12
22:22
(0)Не парь мозг и позови адинесника.
8 msk-07
 
22.08.12
22:25
Мне просто не понятно, если выводит имя контрагента этого документа, то почему название этого документа вывести нельзя?
9 Рэйв
 
22.08.12
22:27
(8)
E=MC^2

что тебе это говорит?  Готов поспорить - НИЧЕГО.

А некоторым людям -говорит.
10 Рэйв
 
22.08.12
22:28
+(9)Это не значит что они умные...
Это просто ты тупой
11 Джордж1
 
22.08.12
22:29
Попробуй ТабПрих.Документ и ТабРасх.Документ
12 msk-07
 
22.08.12
22:29
(10) Ты кто такой? Давай, до свидания со своей формулой (квадрат скорости на константный множитель)!!!!
13 alex74
 
22.08.12
22:30
В ТабПрих добавь колонку "Документ" и пиши туда Опер.Документ, потом выводи на печать
14 msk-07
 
22.08.12
22:30
(11) Спасибо! Сейчас попробую! А в свойствах макета в данной ячейки ни чего добавлять кроме как "выражение" не надо?
15 msk-07
 
22.08.12
22:31
(13) так так и делаю....но не формирует он
16 Рэйв
 
22.08.12
22:31
(12)Если что...Все претензии к Альберту Энштейну, молодой человек:-)
17 alex74
 
22.08.12
22:32
(14) в ячейке пропиши "ТабПрих.Документ"
18 ДенисЧ
 
22.08.12
22:36
(5) не... Не 1с... А DNA...
19 msk-07
 
22.08.12
22:37
http://files.mail.ru/97ZOZY

Я скинул эту обработку...уже и не знаю..что там не так в этой ячейке
20 msk-07
 
22.08.12
22:38
(14)! Спасибо!!! Сейчас попробую
21 msk-07
 
22.08.12
22:40
не ошибка, поле агрегатного объекта не найдено(Документ)
22 alex74
 
22.08.12
22:45
Ты в макете написал ТабПрих.Докумен
забыл т в конце добавить
23 alex74
 
22.08.12
22:46
и не указал тип ячейки "выражение"
24 alex74
 
22.08.12
22:46
а в коде на какую строку ругается?
25 msk-07
 
22.08.12
22:48
(23) Указал. Ошибка " поле агрегатного объекта не найдено(Документ)"
26 alex74
 
22.08.12
22:50
напиши сюда полный текст ошибки
27 msk-07
 
22.08.12
22:50
28 msk-07
 
22.08.12
22:52
29 alex74
 
22.08.12
22:52
слово Документ заканчивается на букву т
30 Рэйв
 
22.08.12
22:58
А может в правила форума внесем статью " Бан на неделю за особый идиотизм"?
31 msk-07
 
22.08.12
22:58
Ой, спасибо! ВСе работает, но вместе с документом пишется код его
32 viktor_vv
 
22.08.12
22:58
(31) Это как ? Номер что ли ?
33 msk-07
 
22.08.12
22:59
СокрЛП(ТабПрих.Документ) попробовал отсечь...не получилось
34 viktor_vv
 
22.08.12
23:00
(33) Ты скопировать можешь, что вывелось, и что тебе хотелось бы ?
35 msk-07
 
22.08.12
23:01
Оприходование ТМЦ KLSP000062 (18.06.12) <-Это выводится
А надо только    Оприходование ТМЦ
36 alex74
 
22.08.12
23:02
(31) не нравится как выглядит текстовое представление документа, - формируй его сам, типа
"Документ " + ТабРасх.Документ.Вид() + " номер " + ТабрРасх.Документ.НомерДок + " от " + ТабРасх.Документ.ДатаДок + " ура, я теперь программист!"
37 alex74
 
22.08.12
23:03
(35) в ячейке пропиши ТабРасх.Документ.Вид()
38 viktor_vv
 
22.08.12
23:03
(35) ТабПрих.Документ.ПредставлениеВида();
39 msk-07
 
22.08.12
23:03
(36) :(
40 msk-07
 
22.08.12
23:07
(38) ошибка Поле агрегатного объекта не обнаружено (ПредставлениеВид)
41 msk-07
 
22.08.12
23:08
а в ячейке написал ТабПрих.Документ.ПредставлениеВид()
42 viktor_vv
 
22.08.12
23:09
(40) Ты копировать можешь нормально. ТабПрих.Документ.ПредставлениеВидА() .
43 alex74
 
22.08.12
23:09
(41) ПредставлениеВидА()
в конце А
у тебя клавиатура неисправна, что ли?
44 viktor_vv
 
22.08.12
23:09
(41) Если хочешь стать программером, самое первое научись копипастить :).
45 msk-07
 
22.08.12
23:10
Да, да, да...я уже исправил! Спасибо всем огромное за помощь! Очень благодарен!
46 Мимохожий Однако
 
22.08.12
23:11
ОФФ: не булькает
47 Lionee
 
23.08.12
21:56
мда разборки
48 SED
 
23.08.12
22:00
Lionee настальгия нахлынула??
)))