Имя: Пароль:
1C
1С v8
Задать значение параметра
0 reznik911
 
29.07.14
07:42
в модуле объекта внешней обработки прописал запрос к документу:
Функция ПечатьДокумента()
Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("Дата",СсылкаНаОбъект.Дата);
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    РеализацияТоваровУслуг.Номер,
    |    РеализацияТоваровУслуг.Дата,
    |    РеализацияТоваровУслуг.ДоговорКонтрагента,
    |    РеализацияТоваровУслуг.Контрагент КАК Получатель,
    |    РеализацияТоваровУслуг.Организация,
    |    РеализацияТоваровУслуг.Организация КАК Поставщик,
    |    РеализацияТоваровУслуг.СтруктурноеПодразделение,
    |    РеализацияТоваровУслуг.СуммаДокумента,
    |    РеализацияТоваровУслуг.ВалютаДокумента,
    |    РеализацияТоваровУслуг.УчитыватьНДС,
    |    РеализацияТоваровУслуг.СуммаВключаетНДС,
    |    РеализацияТоваровУслуг.УчитыватьАкциз,
    |    РеализацияТоваровУслуг.СуммаВключаетАкциз,
    |    РеализацияТоваровУслуг.КурсВзаиморасчетов,
    |    РеализацияТоваровУслуг.КратностьВзаиморасчетов,
    |    РеализацияТоваровУслуг.Грузополучатель,
    |    РеализацияТоваровУслуг.Доверенность,
    |    РеализацияТоваровУслуг.Склад,
    |    РеализацияТоваровУслуг.ОтпускПроизвел,
    |    РеализацияТоваровУслуг.ОтпускРазрешил,
    |    ОтветственныеЛицаСклад.ФизическоеЛицо КАК ОтпустилМОЛ ,
    |    РеализацияТоваровУслуг.ДоверенностьЧерезКого    
    |ИЗ
    |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛица.СрезПоследних(&Дата, ) КАК ОтветственныеЛицаСклад
    |        ПО РеализацияТоваровУслуг.Склад = ОтветственныеЛицаСклад.СтруктурнаяЕдиница
    |ГДЕ
    |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";

    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
       ...


формирую с формы документа пишет:

Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (Выполнить): {(26, 68)}: Не задано значение параметра "Дата"
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛица.СрезПоследних(<<?>>&Дата, ) КАК ОтветственныеЛицаСклад

Не подскажете какое значение можно задать Параметру Дата? СсылкаНаОбъект.Дата пробовал неправильно
1 butterbean
 
29.07.14
07:49
ну может просто не сохранил файл... можно конфигуратор перезапустить и предприятие
2 reznik911
 
29.07.14
07:52
(1) не помогло
3 butterbean
 
29.07.14
07:52
(2) в отладчике  тогда смотри свои параметры
4 Nenaviwu1c20
 
29.07.14
07:57
не верю
5 Russiagreat
 
29.07.14
08:00
Может СсылкаНаОбъект не передается?
6 butterbean
 
29.07.14
08:01
(5) все равно ругательства из (0) не было-бы
7 Russiagreat
 
29.07.14
08:05
А запятую если убрать после Дата?
8 Russiagreat
 
29.07.14
08:06
(6) Почему? Ссылки нет, и даты нет. он будет ругать не задан параметр.
9 reznik911
 
29.07.14
08:07
(3) пишет теперь Не удалось сформировать внешнюю печатную форму!
Поле объекта не обнаружено (Дата)
10 reznik911
 
29.07.14
08:08
дату он получает а передать в запрос видимо не смог
11 Мимохожий Однако
 
29.07.14
08:31
Проверь отладчиком строку Запрос.УстановитьПараметр("Дата",СсылкаНаОбъект.Дата);
12 reznik911
 
29.07.14
08:37
(11) проверил. дату документа получил. думаю пашет. а почему дальше не может в запрос в рег сведений передать незнаю
13 Russiagreat
 
29.07.14
08:50
(12)

Скопипасти дату из установки параметров в запрос... мало ли ,вдруг раскладка одной  буквы отличается
14 Мимохожий Однако
 
29.07.14
08:53
(12)Регистр сведений хочет скорее всего не просто дату, а дату на начало периода.
15 Russiagreat
 
29.07.14
08:55
(14) Обычно он хочет конец периода
16 reznik911
 
29.07.14
09:00
и как мне из даты документа сделать конец периода)))
17 reznik911
 
29.07.14
09:01
ну т.к. срез последних походу конец периода
18 Godofsin
 
29.07.14
09:02
(13) (15) Что за ерунда?
19 Godofsin
 
29.07.14
09:04
Отладчик что говорит на "СсылкаНаОбъект.Дата"?
20 Russiagreat
 
29.07.14
09:05
Новый МоментВремени(СсылкаНаОбъект.Дата, СсылкаНаОбъект.Ссылка);
21 Russiagreat
 
29.07.14
09:06
Или границу сделай, с видом границы "включая"
22 reznik911
 
29.07.14
09:11
(19) (9)
23 Godofsin
 
29.07.14
09:16
(22) Это значит, что у "СсылкаНаОбъект" нет поля "дата".
Теперь смотри отладчиком, что там у тебя в СсылкаНаОбъект
24 reznik911
 
29.07.14
09:19
(23) ссылка на документ или иначе РеализацияТоваровУслуг.Ссылка как и должно быть
25 reznik911
 
29.07.14
09:19
(23) и у него есть поле дата
26 Godofsin
 
29.07.14
09:20
(24) Не верю! Скрин отладчика с "СсылкаНаОбъект" и "СсылкаНаОбъект.Дата"
27 Godofsin
 
29.07.14
09:20
в студию
28 reznik911
 
29.07.14
09:25
(27) радикал или куды
29 Godofsin
 
29.07.14
09:26
savepic.org
30 reznik911
 
29.07.14
09:29
31 Godofsin
 
29.07.14
09:30
(30) savepic.ru То есть
32 Godofsin
 
29.07.14
09:30
туда грузи
33 reznik911
 
29.07.14
09:32
34 reznik911
 
29.07.14
09:33
35 Godofsin
 
29.07.14
09:35
И какая говоришь ошибка в этом случае вылетает?
36 vhl
 
29.07.14
09:35
(34) А теперь текст запроса полностью и до "Запрос.Выполлнить()" ?
37 Russiagreat
 
29.07.14
09:36
Ощущение что вид документа другой
38 Godofsin
 
29.07.14
09:38
+(35) И это, открой для себя "табло" в отладчике. А то по твоим скринам непонятно, каких типов переменные. Может дата у тебя строка?
39 Godofsin
 
29.07.14
09:39
(37) Кстати да
40 samozvanec
 
29.07.14
09:39
(0) скорее всего кеша глючит. сохрани обработку под другим именем
41 samozvanec
 
29.07.14
09:41
еще поставь точку останова на
Шапка = Запрос.Выполнить().Выбрать();
и посмотри, что у тебя в Запрос.Параметры
42 1Сергей
 
29.07.14
09:41
Перезайди в конфигуратор
43 reznik911
 
29.07.14
09:43
44 Godofsin
 
29.07.14
09:45
(43) Ну тогда я сдаюсь. Пробуй (40) и (42).

Кстати, может ругается совсем не на это место? Может у тебя дальше по тексту обработки косяк?
45 reznik911
 
29.07.14
09:47
46 Godofsin
 
29.07.14
09:49
(45) Что еще за шапка мля? текст ошибки полностью выложи!
47 Godofsin
 
29.07.14
09:50
Шапка есть, значит запрос отработал? Чо ты нам моск насилуешь ?
48 reznik911
 
29.07.14
09:52
(46) Не удалось сформировать внешнюю печатную форму!
Поле объекта не обнаружено (Дата)
49 reznik911
 
29.07.14
09:52
(47) шапка это ответ на (41) ясно?
50 Godofsin
 
29.07.14
09:52
(48) НА КАКУЮ СТРОЧКУ?
51 Godofsin
 
29.07.14
09:53
(49) Ну так запрос отработал, судя по (45) и в (0) ошибок нет!
52 vhl
 
29.07.14
09:53
(45) У тебя запрос выполнился. Ищи ошибку в другом месте
53 Timon1405
 
29.07.14
09:55
вангую установку параметров в макете, обращение через точку к нуллу в поле "ОтпустилМОЛ" из (45)
54 Крошка Ру
 
29.07.14
09:56
Похоже в макет параметр называется не "Дата"...
55 Крошка Ру
 
29.07.14
09:57
*в макете
56 vhl
 
29.07.14
09:57
(53) Вангую он одну печатную форму отлаживает, а ошибка возникает в другой.
57 Timon1405
 
29.07.14
09:59
(56) ага, у него слишком много несохраненных обработок и темповых имен файлов на одном скрине...
58 reznik911
 
29.07.14
10:00
(56) ну может быть в другом потому что он ведь каждый раз темповый создает
59 reznik911
 
29.07.14
10:00
(50) на какую строчку не знаю!! эта долбанная внешняя печатная форма на нее ссылку и на строчку с ошибкой он не покажет
60 samozvanec
 
29.07.14
10:02
(49) а ничего, что я просил показать Запрос.Параметры? хотя, показав шапку, ты сделал правильно)
включай остановку по ошибке, точки останова убери все
61 Крошка Ру
 
29.07.14
10:03
(59) а сохранить её в файл и отлаживать как обработку не судьба?
62 reznik911
 
29.07.14
10:04
(61) что что?
63 samozvanec
 
29.07.14
10:04
+(60) и скрин, как остановится, сделай, прежде чем куда-то тыкать
64 Крошка Ру
 
29.07.14
10:05
(62) Что непонятного?
65 samozvanec
 
29.07.14
10:05
(61) а он как отлаживает? откладывает...
66 reznik911
 
29.07.14
10:07
67 reznik911
 
29.07.14
10:07
(64) все непонятно. смысл его сохранять потом при запуске опять сформирует новый темповый... вот что не понятно
68 reznik911
 
29.07.14
10:08
(61) а я его как отлаживаю?
69 Крошка Ру
 
29.07.14
10:08
(65) Тогда вот этого не понял:

>> на строчку с ошибкой он не покажет
70 hhhh
 
29.07.14
10:09
(66) дальше листай, следующий скрин.
71 reznik911
 
29.07.14
10:10
(70) пока тишина
72 reznik911
 
29.07.14
10:12
73 reznik911
 
29.07.14
10:13
а вот она дата http://savepic.org/5895532.png
74 hhhh
 
29.07.14
10:14
(71)что тишина? Сначала идут ошибки, которые попытки исключения там в типовой. Ты их пропускай, жми дальше. Где-то 5-я или 6-я будет твоя ошибка. На ней делай скрин и присылай его самозванцу.
75 hhhh
 
29.07.14
10:15
(74) ну теперь нажми отладка-стек вызовов и посмотри из какого места твоей обработки произошел вызов.
76 samozvanec
 
29.07.14
10:16
о как. ну смотри, что за поля, чего не хватает. собственно черным по белому же
77 vhl
 
29.07.14
10:16
(73) Не она...
78 samozvanec
 
29.07.14
10:18
+(76) подключи ее как внешнюю. что-то у тебя не то передается в стандартные процедуры
79 hhhh
 
29.07.14
10:18
(77) не, может быть. НомерНаПечать. Он наверняка туда вместо документа емейл своей бабушки подсовывает. Вот 1с и обиделась.
80 Russiagreat
 
29.07.14
10:19
это надо же так в заблуждение народ вводить с запросами
81 reznik911
 
29.07.14
10:19
82 samozvanec
 
29.07.14
10:19
я вот не помню, как в уф подключается, есть ощущение, что твоя функция печать возвращает не то, что хотят стандартные
83 reznik911
 
29.07.14
10:20
(78) она и так внешняя
84 samozvanec
 
29.07.14
10:21
(81) вот че у тебя там за РаботаСДиалогами.СформироватьЗаголовок(ДокументОбъект = Обработка.НаименованиеДокумента = "четотам")
у тебя в параметре булево получается, судя по всему, сомневаюсь, что его там хотят
85 reznik911
 
29.07.14
10:24
(84) Формат(ДокументОбъект.Дата, "ДЛФ=DD") вот суды видимо Дату вставить не может, а ДОкументОбъект = РасходнаяНакладная_новая получил
86 ДенисЧ
 
29.07.14
10:26
А забавные параметры вызова процедуры общего модуля, не находите?
87 samozvanec
 
29.07.14
10:28
блин там даже непонятно, точки это, или запятые.
(86) еще как находим
88 reznik911
 
29.07.14
10:28
(86) на счет каких параметров?
89 ДенисЧ
 
29.07.14
10:29
(88) Ты ж туда булевы передаёшь, а не объект...
90 reznik911
 
29.07.14
10:39
(89) да вроде объекты
91 reznik911
 
29.07.14
10:42
Функция ПечатьДокумента()
Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("Дата",СсылкаНаОбъект.Дата);
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    РеализацияТоваровУслуг.Номер,
    |    РеализацияТоваровУслуг.Дата,
    |    РеализацияТоваровУслуг.ДоговорКонтрагента,
    |    РеализацияТоваровУслуг.Контрагент КАК Получатель,
    |    РеализацияТоваровУслуг.Организация,
    |    РеализацияТоваровУслуг.Организация КАК Поставщик,
    |    РеализацияТоваровУслуг.СтруктурноеПодразделение,
    |    РеализацияТоваровУслуг.СуммаДокумента,
    |    РеализацияТоваровУслуг.ВалютаДокумента,
    |    РеализацияТоваровУслуг.УчитыватьНДС,
    |    РеализацияТоваровУслуг.СуммаВключаетНДС,
    |    РеализацияТоваровУслуг.УчитыватьАкциз,
    |    РеализацияТоваровУслуг.СуммаВключаетАкциз,
    |    РеализацияТоваровУслуг.КурсВзаиморасчетов,
    |    РеализацияТоваровУслуг.КратностьВзаиморасчетов,
    |    РеализацияТоваровУслуг.Грузополучатель,
    |    РеализацияТоваровУслуг.Доверенность,
    |    РеализацияТоваровУслуг.Склад,
    |    РеализацияТоваровУслуг.ОтпускПроизвел,
    |    РеализацияТоваровУслуг.ОтпускРазрешил,
    |    ОтветственныеЛицаСклад.ФизическоеЛицо КАК ОтпустилМОЛ ,
    |    РеализацияТоваровУслуг.ДоверенностьЧерезКого    
    |ИЗ
    |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛица.СрезПоследних(&Дата, ) КАК ОтветственныеЛицаСклад
    |        ПО РеализацияТоваровУслуг.Склад = ОтветственныеЛицаСклад.СтруктурнаяЕдиница
    |ГДЕ
    |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";

    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();

    ТекстКурс = "";

    СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("РеализацияТоваровУслуг");
Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ВложенныйЗапросПоТоварам.Номенклатура,
    |    ВЫРАЗИТЬ(ВложенныйЗапросПоТоварам.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар,
    |    ВложенныйЗапросПоТоварам.Номенклатура.Код КАК Код,
    |    ВложенныйЗапросПоТоварам.Номенклатура.Артикул КАК Артикул,
    |    ВложенныйЗапросПоТоварам.Количество,
    |    ВложенныйЗапросПоТоварам.КоличествоМест,
    |    ВложенныйЗапросПоТоварам.ЕдиницаИзмерения.Представление КАК ЕдиницаЦены,
    |    ВложенныйЗапросПоТоварам.ЕдиницаИзмеренияМест.Представление КАК ЕдиницаМест,
    |    ВложенныйЗапросПоТоварам.Номенклатура.БазоваяЕдиницаИзмерения КАК БазЕд,
    |    ВложенныйЗапросПоТоварам.Коэффициент,
    |    ВложенныйЗапросПоТоварам.Цена,
    |    ВложенныйЗапросПоТоварам.Сумма,
    |    ВложенныйЗапросПоТоварам.СуммаНДС,
    |    ВложенныйЗапросПоТоварам.СуммаАкциза,
    |    ВложенныйЗапросПоТоварам.ПроцентСкидкиНаценки КАК Скидка,
    |    ВложенныйЗапросПоТоварам.ПроцентАвтоматическихСкидок КАК АвтоматическаяСкидка,
    |    ВложенныйЗапросПоТоварам.ХарактеристикаНоменклатуры КАК Характеристика,
    |    ВложенныйЗапросПоТоварам.СтранаПроисхождения КАК СтранаПроисхождения,
    |    ВложенныйЗапросПоТоварам.НомерГТД КАК НомерГТД,
    |    ВложенныйЗапросПоТоварам.СерияНоменклатуры КАК Серия,
    |    ВложенныйЗапросПоТоварам.НомерСтроки КАК НомерСтроки,
    |    ВложенныйЗапросПоТоварам.Метка КАК Метка
    |ИЗ
    |    (ВЫБРАТЬ
    |        РеализацияТоваровУслуг.Номенклатура КАК Номенклатура,
    |        РеализацияТоваровУслуг.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |        РеализацияТоваровУслуг.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
    |        РеализацияТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения КАК БазЕд,
    |        РеализацияТоваровУслуг.Коэффициент,
    |        РеализацияТоваровУслуг.Цена КАК Цена,
    |        РеализацияТоваровУслуг.СтавкаНДС КАК СтавкаНДС,
    |        РеализацияТоваровУслуг.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
    |        РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
    |        РеализацияТоваровУслуг.СерияНоменклатуры.НомерГТД КАК НомерГТД,
    |        РеализацияТоваровУслуг.СерияНоменклатуры.СтранаПроисхождения КАК СтранаПроисхождения,
    |        РеализацияТоваровУслуг.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |        РеализацияТоваровУслуг.СерияНоменклатуры КАК СерияНоменклатуры,
    |        СУММА(РеализацияТоваровУслуг.Количество) КАК Количество,
    |        СУММА(РеализацияТоваровУслуг.КоличествоМест) КАК КоличествоМест,
    |        СУММА(РеализацияТоваровУслуг.Сумма) КАК Сумма,
    |        СУММА(РеализацияТоваровУслуг.СуммаНДС) КАК СуммаНДС,
    |        СУММА(РеализацияТоваровУслуг.СуммаАкциза) КАК СуммаАкциза,
    |        МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки) КАК НомерСтроки,
    |        0 КАК Метка
    |    ИЗ
    |        Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
    |    ГДЕ
    |        РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
    |    
    |    СГРУППИРОВАТЬ ПО
    |        РеализацияТоваровУслуг.Номенклатура,
    |        РеализацияТоваровУслуг.ЕдиницаИзмерения,
    |        РеализацияТоваровУслуг.ЕдиницаИзмеренияМест,
    |        РеализацияТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения,
    |        РеализацияТоваровУслуг.Коэффициент,
    |        РеализацияТоваровУслуг.Цена,
    |        РеализацияТоваровУслуг.СтавкаНДС,
    |        РеализацияТоваровУслуг.ПроцентСкидкиНаценки,
    |        РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок,
    |        РеализацияТоваровУслуг.СерияНоменклатуры,
    |        РеализацияТоваровУслуг.ХарактеристикаНоменклатуры,
    |        РеализацияТоваровУслуг.СерияНоменклатуры.НомерГТД,
    |        РеализацияТоваровУслуг.СерияНоменклатуры.СтранаПроисхождения) КАК ВложенныйЗапросПоТоварам
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Номенклатура,
    |   " + СтрокаВыборкиПоляСодержания + ",
    |    РеализацияТоваровУслуг.Номенклатура.Код,
    |    РеализацияТоваровУслуг.Номенклатура.Артикул,
    |    РеализацияТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения КАК БазЕд,
    |    Null,
    |    РеализацияТоваровУслуг.Количество,
    |    NULL,
    |    РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление,
    |    NULL,
    |    РеализацияТоваровУслуг.Цена,
    |    РеализацияТоваровУслуг.Сумма,
    |    РеализацияТоваровУслуг.СуммаНДС,
    |    0,
    |    РеализацияТоваровУслуг.ПроцентСкидкиНаценки,
    |    РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок КАК АвтоматическаяСкидка,
    |    NULL,
    |    NULL,
    |    NULL,
    |    NULL,
    |    РеализацияТоваровУслуг.НомерСтроки,
    |    1
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслуг
    |ГДЕ
    |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Номенклатура,
    |    ВЫРАЗИТЬ(РеализацияТоваровУслуг.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
    |    РеализацияТоваровУслуг.Номенклатура.Код,
    |    РеализацияТоваровУслуг.Номенклатура.Артикул,
    |    РеализацияТоваровУслуг.Количество,
    |    РеализацияТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения КАК БазЕд,
    |    Null,
    |    NULL,
    |    РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление,
    |    NULL,
    |    РеализацияТоваровУслуг.Цена,
    |    РеализацияТоваровУслуг.Сумма,
    |    0,
    |    0,
    |    0,
    |    NULL,
    |    NULL,
    |    NULL,
    |    NULL,
    |    NULL,
    |    РеализацияТоваровУслуг.НомерСтроки,
    |    2
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслуг
    |ГДЕ
    |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
    |
    |УПОРЯДОЧИТЬ ПО
    |    Метка,
    |    НомерСтроки";


    ЗапросТовары = Запрос.Выполнить().Выгрузить();
    
    СтруктурнаяЕдиницаОрганизация = ОбщегоНазначения.ПолучитьСтруктурнуюЕдиницу(Шапка.Организация, Шапка.СтруктурноеПодразделение);

    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Накладная";
    
    Макет = ПолучитьМакет("Накладная");

    // Выводим шапку накладной

    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.ТекстЗаголовка = РаботаСДиалогами.СформироватьЗаголовокДокумента(ЭтотОбъект, "Расходная накладная");
    ТабДокумент.Вывести(ОбластьМакета);

    ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
    ПредставлениеПоставщика = ОбщегоНазначения.ОписаниеОрганизации(ОбщегоНазначения.СведенияОЮрФизЛице(СтруктурнаяЕдиницаОрганизация, Шапка.Дата), "ПолноеНаименование,", Ложь);
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика;
    ОбластьМакета.Параметры.Поставщик = СтруктурнаяЕдиницаОрганизация;
    ТабДокумент.Вывести(ОбластьМакета);

    ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
    ПредставлениеПолучателя = ОбщегоНазначения.ОписаниеОрганизации(ОбщегоНазначения.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование,", Ложь);
    ОбластьМакета.Параметры.ПредставлениеПолучателя = СокрЛП(ПредставлениеПолучателя);
    ОбластьМакета.Параметры.Получатель = Шапка.Получатель;
    ТабДокумент.Вывести(ОбластьМакета);

    Если (Шапка.Получатель <> Шапка.Грузополучатель) И ЗначениеЗаполнено(Шапка.Грузополучатель) Тогда
        ОбластьМакета = Макет.ПолучитьОбласть("Грузополучатель");
        ПредставлениеГрузополучателя = ОбщегоНазначения.ОписаниеОрганизации(ОбщегоНазначения.СведенияОЮрФизЛице(Шапка.Грузополучатель, Шапка.Дата), "ПолноеНаименование,", Ложь);
        ОбластьМакета.Параметры.ПредставлениеГрузополучателя = СокрЛП(ПредставлениеГрузополучателя);
        ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    
    Если ЗначениеЗаполнено(Шапка.Доверенность) Тогда
        ОбластьМакета = Макет.ПолучитьОбласть("Доверенность");
        ДанныеДляДоверенности = СокрЛП(Шапка.Доверенность);
        Если ЗначениеЗаполнено(Шапка.ДоверенностьЧерезКого) Тогда
            ДанныеДляДоверенности = ДанныеДляДоверенности + " выданной, "  + СокрЛП(Шапка.ДоверенностьЧерезКого);
        КонецЕсли;    
        ОбластьМакета.Параметры.Доверенность = ДанныеДляДоверенности;
        ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    
    Если ЗначениеЗаполнено(Шапка.ДоговорКонтрагента) Тогда
        ОбластьМакета = Макет.ПолучитьОбласть("Основание");
        ОбластьМакета.Параметры.Основание = Шапка.ДоговорКонтрагента;
        ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    
    Если СсылкаНаОбъект.Товары.Количество() + СсылкаНаОбъект.ВозвратнаяТара.Количество()<> 0 Тогда
        ОбластьМакета = Макет.ПолучитьОбласть("Склад");
        ОбластьМакета.Параметры.Склад = Шапка.Склад;
        ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;    
    
    ЕстьСкидки = ЗапросТовары.Итог("Скидка") + ЗапросТовары.Итог("АвтоматическаяСкидка") <> 0;

    ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
    Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
        ВыводитьКоды = Истина;
        Колонка = "Артикул";
    ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
        ВыводитьКоды = Истина;
        Колонка = "Код";
    Иначе
        ВыводитьКоды = Ложь;
    КонецЕсли;
    
    ВыводитьГТД = Ложь;

    //Проверим нужно ли выводить страну происхождения и ГТД
    Для Каждого Товар ИЗ ЗапросТовары Цикл
        Если ЗначениеЗаполнено(Товар.НомерГТД) Или ЗначениеЗаполнено(Товар.СтранаПроисхождения) Тогда
            ВыводитьГТД = Истина;
            Прервать;
        КонецЕсли;        
    КонецЦикла;
                      
    ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
    ОбластьТовар   = Макет.ПолучитьОбласть("ШапкаТаблицы|Товар");
    ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|КоличествоЦена");
    ОбластьСкидок = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка");
    ОбластьСуммы  = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");
    ОбластьГТД  = Макет.ПолучитьОбласть("ШапкаТаблицы|ГТД");

    ТабДокумент.Вывести(ОбластьНомера);
    Если ВыводитьКоды Тогда
        ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
        ТабДокумент.Присоединить(ОбластьКодов);
    КонецЕсли;
    ТабДокумент.Присоединить(ОбластьТовар);
    
    ТабДокумент.Присоединить(ОбластьДанных);
    Если ЕстьСкидки Тогда
        ТабДокумент.Присоединить(ОбластьСкидок);
    КонецЕсли;
    
    ТабДокумент.Присоединить(ОбластьСуммы);
    
    Если ВыводитьГТД Тогда
        ТабДокумент.Присоединить(ОбластьГТД);
    КонецЕсли;
    
    ОбластьКолонкаТовар = Макет.Область("Товар");
    Если Не ВыводитьКоды Тогда
        ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
        Макет.Область("КолонкаКодов").ШиринаКолонки;
    КонецЕсли;
    Если НЕ ЕстьСкидки Тогда
        ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
        Макет.Область("СуммаБезСкидки").ШиринаКолонки +
        Макет.Область("СуммаСкидки").ШиринаКолонки;
    КонецЕсли;
    
    Если НЕ ВыводитьГТД Тогда
        ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
        Макет.Область("ГТД").ШиринаКолонки;
    КонецЕсли;

    ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
    ОбластьТовар  = Макет.ПолучитьОбласть("Строка|Товар");
    ОбластьДанных = Макет.ПолучитьОбласть("Строка|КоличествоЦена");
    ОбластьСкидок = Макет.ПолучитьОбласть("Строка|Скидка");
    ОбластьСуммы  = Макет.ПолучитьОбласть("Строка|Сумма");
    ОбластьГТД  = Макет.ПолучитьОбласть("Строка|ГТД");

    Сумма    = 0;
    СуммаНДС = 0;
    ВсегоСкидок    = 0;
    ВсегоБезСкидок = 0;
    
    Для каждого ВыборкаСтрокТовары из ЗапросТовары Цикл

        Если Не ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
            Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
            Продолжить;
        КонецЕсли;

        ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
        ТабДокумент.Вывести(ОбластьНомера);
        
        Если ВыводитьКоды Тогда
            Если Колонка = "Артикул" Тогда
                ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
            Иначе
                ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
            КонецЕсли;
            ТабДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;
        ОбластьТовар.Параметры.Заполнить(ВыборкаСтрокТовары);
        ОбластьТовар.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар)
        + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары)
        + ?(ВыборкаСтрокТовары.Метка = 2, " (возвратная тара)", "");        
        ТабДокумент.Присоединить(ОбластьТовар);
        ОбластьДанных.Параметры.БазЕд=ВыборкаСтрокТовары.БазЕд;
        ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
        //Сухраб от
        Если ВыборкаСтрокТовары.Коэффициент > 1 Тогда
        ОбластьДанных.Параметры.ЦенаЕд=ВыборкаСтрокТовары.Цена/ВыборкаСтрокТовары.Коэффциент;
        ОбластьДанных.Параметры.КоличествоБазЕд=ВыборкаСтрокТовары.ЦенаЕд*ВыборкаСтрокТовары.Количество;
    Иначе
        ОбластьДанных.Параметры.ЦенаЕд=ВыборкаСтрокТовары.Цена;
        ОбластьДанных.Параметры.КоличествоБазЕд=ВыборкаСтрокТовары.Количество;
        //Сухраб до
        ТабДокумент.Присоединить(ОбластьДанных);
        КонецЕсли;

        // Скидка может быть NULL
        ПроцентСкидки = ?(ЗначениеЗаполнено(ВыборкаСтрокТовары.Скидка),ВыборкаСтрокТовары.Скидка,0)
        + ?(ЗначениеЗаполнено(ВыборкаСтрокТовары.АвтоматическаяСкидка),ВыборкаСтрокТовары.АвтоматическаяСкидка,0);

        Если ПроцентСкидки = 100 Тогда
            СуммаДляСкидки = Окр(ВыборкаСтрокТовары.Цена * ВыборкаСтрокТовары.Количество,2,1);
        Иначе
            СуммаДляСкидки = ВыборкаСтрокТовары.Сумма;
        КонецЕсли;
        
        Скидка = УправлениеЦенообразованием.ПолучитьСуммуСкидки(СуммаДляСкидки, ПроцентСкидки);    

        Если ЕстьСкидки Тогда
            ОбластьСкидок.Параметры.Скидка         = Скидка;
            ОбластьСкидок.Параметры.СуммаБезСкидки =  ВыборкаСтрокТовары.Сумма + Скидка;
            ТабДокумент.Присоединить(ОбластьСкидок);
        КонецЕсли;

        ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
        
        ТабДокумент.Присоединить(ОбластьСуммы);

        Если ВыводитьГТД Тогда
            ОбластьГТД.Параметры.НомерГТДСтранаПроисхождения = ?(ЗначениеЗаполнено(ВыборкаСтрокТовары.НомерГТД),
            СокрЛП(ВыборкаСтрокТовары.НомерГТД.Код)+",", "") + Символы.ПС + ВыборкаСтрокТовары.СтранаПроисхождения;        
            
            ТабДокумент.Присоединить(ОбластьГТД);
            
        КонецЕсли;
        
        Сумма          = Сумма       + ВыборкаСтрокТовары.Сумма +  ?((Шапка.УчитыватьАкциз И НЕ Шапка.СуммаВключаетАкциз), ВыборкаСтрокТовары.СуммаАкциза, 0);
        СуммаНДС       = СуммаНДС    + ВыборкаСтрокТовары.СуммаНДС;
        
        ВсегоСкидок    = ВсегоСкидок + Скидка;
        ВсегоБезСкидок = Сумма       + ВсегоСкидок;
        
        //прибавим к сумме акциз, если он не включен в стоимость
        ВсегоБезСкидок = ВсегоБезСкидок + ?((Шапка.УчитыватьАкциз И НЕ Шапка.СуммаВключаетАкциз), ВыборкаСтрокТовары.СуммаАкциза, 0);        
    КонецЦикла;

    // Вывести Итого
    ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
    ОбластьТовар  = Макет.ПолучитьОбласть("Итого|Товар");
    ОбластьДанных = Макет.ПолучитьОбласть("Итого|КоличествоЦена");
    ОбластьСкидок = Макет.ПолучитьОбласть("Итого|Скидка");
    ОбластьСуммы  = Макет.ПолучитьОбласть("Итого|Сумма");
    ОбластьГТД    = Макет.ПолучитьОбласть("Итого|ГТД");

    ТабДокумент.Вывести(ОбластьНомера);
    Если ВыводитьКоды Тогда
        ТабДокумент.Присоединить(ОбластьКодов);
    КонецЕсли;
    ТабДокумент.Присоединить(ОбластьТовар);
    
    ТабДокумент.Присоединить(ОбластьДанных);
    Если ЕстьСкидки Тогда
        ОбластьСкидок.Параметры.ВсегоСкидок    = ВсегоСкидок;
        ОбластьСкидок.Параметры.ВсегоБезСкидок = ВсегоБезСкидок;
        ТабДокумент.Присоединить(ОбластьСкидок);
    КонецЕсли;
    ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
    ТабДокумент.Присоединить(ОбластьСуммы);
    Если ВыводитьГТД Тогда
        ТабДокумент.Присоединить(ОбластьГТД);
    КонецЕсли;
    
    // Вывести ИтогоНДС
    Если Шапка.УчитыватьНДС Тогда
        ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
        ОбластьКодов  = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов");
        ОбластьТовар  = Макет.ПолучитьОбласть("ИтогоНДС|Товар");
        ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|КоличествоЦена");
        ОбластьСкидок = Макет.ПолучитьОбласть("ИтогоНДС|Скидка");
        ОбластьСуммы  = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");
        ОбластьГТД    = Макет.ПолучитьОбласть("ИтогоНДС|ГТД");

        ТабДокумент.Вывести(ОбластьНомера);
        Если ВыводитьКоды Тогда
            ТабДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;
        ТабДокумент.Присоединить(ОбластьТовар);
        
        ОбластьДанных.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:");
        ТабДокумент.Присоединить(ОбластьДанных);
        Если ЕстьСкидки Тогда
            ТабДокумент.Присоединить(ОбластьСкидок);
        КонецЕсли;
        ОбластьСуммы.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
        ТабДокумент.Присоединить(ОбластьСуммы);
        
        Если ВыводитьГТД Тогда
            ТабДокумент.Присоединить(ОбластьГТД);
        КонецЕсли;
        
        Если НЕ Шапка.СуммаВключаетНДС ТОгда
        ОбластьНомера = Макет.ПолучитьОбласть("ИтогоСНДС|НомерСтроки");
        ОбластьКодов  = Макет.ПолучитьОбласть("ИтогоСНДС|КолонкаКодов");
        ОбластьТовар  = Макет.ПолучитьОбласть("ИтогоСНДС|Товар");
        ОбластьДанных = Макет.ПолучитьОбласть("ИтогоСНДС|КоличествоЦена");
        ОбластьСкидок = Макет.ПолучитьОбласть("ИтогоСНДС|Скидка");
        ОбластьСуммы  = Макет.ПолучитьОбласть("ИтогоСНДС|Сумма");
        ОбластьГТД    = Макет.ПолучитьОбласть("ИтогоСНДС|ГТД");
        ТабДокумент.Вывести(ОбластьНомера);
        Если ВыводитьКоды Тогда
            ТабДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;
        ТабДокумент.Присоединить(ОбластьТовар);
        ТабДокумент.Присоединить(ОбластьДанных);
        Если ЕстьСкидки Тогда
            ТабДокумент.Присоединить(ОбластьСкидок);
        КонецЕсли;
        ОбластьСуммы.Параметры.ВсегоСНДС = Сумма+СуммаНДС;
        ТабДокумент.Присоединить(ОбластьСуммы);
        
        Если ВыводитьГТД Тогда
            ТабДокумент.Присоединить(ОбластьГТД);
        КонецЕсли;
        
        КонецЕсли;

    КонецЕсли;

    // Вывести Сумму прописью
    ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);

    ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество()
        + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
        ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
    
    ТабДокумент.Вывести(ОбластьМакета);

    // Вывести подписи
    ОбластьМакета = Макет.ПолучитьОбласть("Подписи");

    // Отпуск товара произвел
    Если ЗначениеЗаполнено(Шапка.ОтпускПроизвел) Тогда
        ФамилияИмяОтчествоФизЛица        = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтпускПроизвел, Шапка.Дата);
        ФамилияИмяОтчествоОтпускПроизвел = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
        ФИООтпускПроизвел                = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускПроизвел);
        ОбластьМакета.Параметры.ОтветственныйПредставление = ФИООтпускПроизвел;
    Иначе//берем из ответственного по складу
        ОбластьМакета.Параметры.ОтветственныйПредставление = ОбщегоНазначения.ФамилияИнициалыФизЛица(Шапка.ОтпустилМОЛ);
    КонецЕсли;

    ТабДокумент.Вывести(ОбластьМакета);
    
    Возврат ТабДокумент;
    

КонецФункции // ПечатьДокумента()
92 reznik911
 
29.07.14
10:43
на всякий случай) может че то упустил
93 samozvanec
 
29.07.14
10:48
(91) ОбластьМакета.Параметры.ТекстЗаголовка = РаботаСДиалогами.СформироватьЗаголовокДокумента(ЭтотОбъект, "Расходная накладная");

этот объект что у тебя?
94 samozvanec
 
29.07.14
10:49
(90) судя по стеку, совсем не объекты
95 VRednaia
 
29.07.14
10:49
ОбластьМакета.Параметры.ТекстЗаголовка = РаботаСДиалогами.СформироватьЗаголовокДокумента(ЭтотОбъект, "Расходная накладная");

Вот это что?

Как ты думаешь, чей номер будет определен для "ЭтотОбъект"?
96 Timon1405
 
29.07.14
10:54
срочно меняй там ЭтотОбъект на СсылкаНаОбъект пока сотка не набежала!
97 reznik911
 
29.07.14
10:54
(93) да офигительный фейк не ЭтотОбъект а СсылкаНаОбъект
Основная теорема систематики: Новые системы плодят новые проблемы.