|
Внешняя обработка 1с 8.3 | ☑ | ||
---|---|---|---|---|
0
mishgun1990
01.06.15
✎
12:51
|
Добрый день.
Проблема в следующим: Почему то из запроса не берутся данные, параметры в макете не заполняются. Можете взглянуть на код, что в нем не так? Буду очень благодарен, заранее спасибо!!! Функция СформироватьТабДокументОбразца(СсылкаНаОбъект, ОбъектПечати) табДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("СчетНаОплатуВнешний"); ОбластьЛого = Макет.ПолучитьОбласть("Лого"); ОбластьШапки = Макет.ПолучитьОбласть("Шапка"); ОбластьТела = Макет.ПолучитьОбласть("Тело"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект.Ссылка); Запрос.Текст = "ВЫБРАТЬ | Контрагенты.ИНН, | Контрагенты.КПП, | Контрагенты.НаименованиеПолное, | Контрагенты.КонтактнаяИнформация.( | Страна, | Город, | НомерТелефона | ) |ИЗ | Документ.КоммерческоеПредложениеКлиенту КАК КоммерческоеПредложениеКлиенту | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты | ПО КоммерческоеПредложениеКлиенту.Партнер.Ссылка = Контрагенты.Партнер.Ссылка |ГДЕ | КоммерческоеПредложениеКлиенту.Ссылка = &Ссылка"; Выборка = Запрос.Выполнить().Выбрать(); //Выборка.Следующий(); ЗаполнитьЗначенияСвойств(ОбластьТела.Параметры, Выборка); табДок.Вывести(ОбластьЛого); табДок.Вывести(ОбластьШапки); табДок.Вывести(ОбластьТела); Возврат табДок; КонецФункции |
|||
1
ДенисЧ
01.06.15
✎
12:52
|
Комментарий убери
|
|||
2
Chikko
01.06.15
✎
12:53
|
//Выборка.Следующий();
раскоменть |
|||
3
Рэйв
01.06.15
✎
12:53
|
и ЗаполнитьЗначенияСвойств- это хитрая зараза та еще... Имена должны точно совпадать.
|
|||
4
mishgun1990
01.06.15
✎
12:56
|
Раскомментировал, но проблема не ушла, также не выгружает.
я ссылаюсь на то, что в параметре запроса он не видит значение, но как поправить, чтоб увидел, в этом нужна помощь( |
|||
5
Я сказал
01.06.15
✎
13:00
|
Если в отладчике посмотреть Запрос.Выполнить().Выгрузить(), то там пустая таблица?
|
|||
6
mishgun1990
01.06.15
✎
13:01
|
А как внешнюю обработку через отладчик пропустить?))
|
|||
7
Рэйв
01.06.15
✎
13:02
|
(6)Элементарно - ставь точку останова и наслаждайся.
|
|||
8
Cube
01.06.15
✎
13:02
|
Делай так:
Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ЗаполнитьЗначенияСвойств(ОбластьТела.Параметры, Выборка); табДок.Вывести(ОбластьЛого); табДок.Вывести(ОбластьШапки); табДок.Вывести(ОбластьТела); Сообщить("Всё пучком"); Иначе Сообщить("Я протупил"); КонецЕсли; Возврат табДок; |
|||
9
Я сказал
01.06.15
✎
13:03
|
Да так же, как и не внешнюю. открыл в конфигураторе, открыл в предприятии, точку поставил, запустил
|
|||
10
mishgun1990
01.06.15
✎
13:03
|
Дак я ставлю, а он на ней не останавливается, а сразу выдает форму для печати
|
|||
11
Рэйв
01.06.15
✎
13:03
|
(10)Значит не доходит до твоей точки.
|
|||
12
Я сказал
01.06.15
✎
13:05
|
База файловая?
|
|||
13
mishgun1990
01.06.15
✎
13:09
|
Серверная
|
|||
14
mishgun1990
01.06.15
✎
13:10
|
Cube прав, не выполняет он запрос((
Блин, в чем проблема то тогда?( |
|||
15
Рэйв
01.06.15
✎
13:10
|
(14)Ну , судя по всему, в запросе:-)
|
|||
16
Я сказал
01.06.15
✎
13:10
|
И функция эта где находится? В модуле объекта обработки? Предприятие запущено в режиме отладки? В конфигураторе и в предприятии открыты одинаковые версии внешней обработки?
|
|||
17
Я сказал
01.06.15
✎
13:11
|
(14) Пустой результат запроса?
|
|||
18
mishgun1990
01.06.15
✎
13:12
|
обработка открывается, когда из документа выполняешь печать.
Да, пустой |
|||
19
mishgun1990
01.06.15
✎
13:13
|
А как тогда взять ссылку на документ, который на печать выводить?
|
|||
20
Рэйв
01.06.15
✎
13:14
|
(19)Если в нем находишься, то ЭтотОбъект
|
|||
21
Рэйв
01.06.15
✎
13:14
|
причем не факт что он записан:-) Поэтому .Ссылка может и не спасти
|
|||
22
Я сказал
01.06.15
✎
13:15
|
Проверь, что у тебя в параметре СсылкаНаОбъект.Ссылка
|
|||
23
ЧеловекДуши
01.06.15
✎
13:15
|
(0)Покажи код вызова обработки.
+ Покажи код обработки, "ПриОткрытии" "ПриСозданииНаСервере" |
|||
24
mishgun1990
01.06.15
✎
13:20
|
Обработка добавилась средствами 1с, Дополнительные отчеты и обработки.
|
|||
25
Я сказал
01.06.15
✎
13:22
|
Посмотри в отладчике, что у тебя в СсылкаНаОбъект.Ссылка. Подозреваю, что там пусто
|
|||
26
mishgun1990
01.06.15
✎
13:23
|
Да, там пусто. В том и проблема, как указать ссылку на документ, из которого печатаю
|
|||
27
Я сказал
01.06.15
✎
13:29
|
(26) А откуда у тебя функция вызывается? Откуда приходит параметр СсылкаНаОбъект
|
|||
28
Я сказал
01.06.15
✎
13:29
|
?
|
|||
29
mishgun1990
01.06.15
✎
13:33
|
Функция в модуле внешней обработки, СсылкаНаОбъект её реквизит. Вызывается эта обработка из документа, в меню Печати.
Как обратится конкретно к документу, который открыл, не знаю( |
|||
30
Я сказал
01.06.15
✎
13:36
|
(29) Ты из документа обращаешься к обработке так:
Обработка = ТвояОбработка.СоздатьОбъект(); ? Если да, то тут же и заполняй реквизит: Обработка.СсылкаНаОбъект = Ссылка; |
|||
31
Я сказал
01.06.15
✎
13:37
|
Покажи код, как вызывается обработка
|
|||
32
Я сказал
01.06.15
✎
13:38
|
(31) ...и из какого модуля она вызывается
|
|||
33
Рэйв
01.06.15
✎
13:39
|
>>Обработка = ТвояОбработка.СоздатьОбъект();
Блин, вроде понедельник, а не пятница.. :-) |
|||
34
mishgun1990
01.06.15
✎
13:39
|
Я из документа обращаюсь к обработке при выборе из выпадающего списка кнопки печать в Документе.
|
|||
35
Я сказал
01.06.15
✎
13:46
|
(33) ага, ошибка.
(34) можешь код написать, который выполняется при нажатии того, что ты нажимаешь в выпадающем списке кнопки Печать? |
|||
36
mishgun1990
01.06.15
✎
13:48
|
Функция ПолучитьНазначениеОбработки()
Массив = Новый Массив; Массив.Добавить("Документ.КоммерческоеПредложениеКлиенту"); Возврат Массив; КонецФункции |
|||
37
mishgun1990
01.06.15
✎
13:49
|
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры |
|||
38
mishgun1990
01.06.15
✎
13:50
|
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний", "СчетНаОплатуВнешний", СформироватьТабДокументОбразца(СсылкаНаОбъект, ОбъектыПечати)); КонецЕсли; КонецПроцедуры |
|||
39
mishgun1990
01.06.15
✎
13:50
|
Ещё две не могу почему то добавить, не отправляется на форум
|
|||
40
mishgun1990
01.06.15
✎
13:51
|
""Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры"" |
|||
41
mishgun1990
01.06.15
✎
13:52
|
В общем там стандартный код добавления внешней печатной формы
|
|||
42
mishgun1990
01.06.15
✎
14:05
|
Никто не знает?(
|
|||
43
Я сказал
01.06.15
✎
15:39
|
Из того, что ты прислал, нигде не видно вызова твоей внешней обработки, куда ты хочешь передать ссылку на документ.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |