|
Внешняя обработка заполнения табличной части 8.3 | ☑ | ||
---|---|---|---|---|
0
breakthrough
15.12.14
✎
10:06
|
Здравствуйте!
Есть обработка заполнения табличной части. Вопрос, как из нее открыть другую форму. Делаю вот так: ОткрытьФорму("Обработка.ИзменениеТаблицыТоваров.Форма.Форма", ПараметрыОбработки, Форма, Форма.УникальныйИдентификатор); Выдает ошибку, что такой функции нет. Вот полный код: Процедура ВыполнитьКоманду(ИмяКоманды, ОбъектыНазначения, ПараметрыВыполнения) Экспорт Если ИмяКоманды = "ЗаполнитьДокументПоПоступлению" Тогда ЗаполнитьДокумент(ПараметрыВыполнения); КонецЕсли; КонецПроцедуры // Обработчик команды. Процедура ЗаполнитьДокумент(ПараметрыВыполнения) Экспорт Форма = ПараметрыВыполнения.ЭтаФорма; Объект = Форма.Объект; АдресХранилищаТовары = ПоместитьВоВременноеХранилище(Объект.Товары.Выгрузить(),Форма.УникальныйИдентификатор ); ПараметрыОбработки = Новый Структура; ПараметрыОбработки.Вставить("АдресХранилищаТовары", АдресХранилищаТовары); ПараметрыОбработки.Вставить("ЗаполнятьЦеныПоПокупке", Истина); ПараметрыОбработки.Вставить("ДокументСсылка", Объект.Ссылка); ПараметрыОбработки.Вставить("ДокументДата", Объект.Дата); ПараметрыОбработки.Вставить("ДокументОрганизация", Объект.Организация); ПараметрыОбработки.Вставить("ДокументВалюта", Объект.ВалютаДокумента); //ПараметрыОбработки.Вставить("ДокументКурс", Объект.КурсВзаиморасчетов); //ПараметрыОбработки.Вставить("ДокументКратность", Объект.КратностьВзаиморасчетов); //ПараметрыОбработки.Вставить("ДокументСуммаВключаетНДС", Объект.СуммаВключаетНДС); //ПараметрыОбработки.Вставить("ДокументТипЦен", Объект.ТипЦен); ПараметрыОбработки.Вставить("ДокументСклад", Объект.Склад); //АдресХранилищаТовары = ПоместитьТоварыВоВременноеХранилищеНаСервере(); //ПоступлениеТоваровУслугФормыКлиент.ИзменитьТовары(ЭтаФорма, Команда, АдресХранилищаТовары); ОткрытьФорму("Обработка.ИзменениеТаблицыТоваров.Форма.Форма", ПараметрыОбработки, Форма, Форма.УникальныйИдентификатор); КонецПроцедуры |
|||
1
breakthrough
15.12.14
✎
10:08
|
Т.е. я хочу реализовать заполнение ТЧ в форме документа, через другую форму (свою или из конфигурации).
|
|||
2
Fish
15.12.14
✎
10:12
|
А откуда открываешь-то? С сервера небось?
|
|||
3
PiVa123
15.12.14
✎
10:17
|
Процедура ЗаполнитьДокумент - без указания "наКлиенте"
|
|||
4
breakthrough
15.12.14
✎
10:53
|
(2) А откуда нужно? Пробовал и с сервера и с клиента.
|
|||
5
breakthrough
15.12.14
✎
10:54
|
(3) Если я ее делаю на клиенте, то вот такая ошибка:
{ВнешняяОбработка.ЗаполнитьДокументПередачаТоваров.МодульОбъекта(34,3)}: Процедура или функция с указанным именем не определена (ЗаполнитьДокумент) <<?>>ЗаполнитьДокумент(ПараметрыВыполнения); (Проверка: Сервер) |
|||
6
PiVa123
15.12.14
✎
10:55
|
(5) Где написано что на клиенте?
Если не указано явно - то считается что "НаСервере" |
|||
7
Fish
15.12.14
✎
10:56
|
(4) Для начала неплохо бы СП почитать:
"Глобальный контекст (Global context) ОткрытьФорму (OpenForm) ... ... Доступность: Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент)." |
|||
8
breakthrough
15.12.14
✎
10:57
|
(6) Я же говорю, что если указываю на &НаКлиенте перед процедурой ЗаполнитьДокумент(), то ошибка. Не видит процедуру программа, т.к. выполняется на сервере.
|
|||
9
breakthrough
15.12.14
✎
10:57
|
(7) И??? Что здесь не так? У меня тонкий клиент.
|
|||
10
breakthrough
15.12.14
✎
10:58
|
(7) Справку я и без тебя читать умею.
|
|||
11
Fish
15.12.14
✎
10:58
|
(9) А где у тебя в (0) указание, что это клиент?
|
|||
12
breakthrough
15.12.14
✎
10:59
|
Вообще кто-нибудь может кинуть работоспособный код с открытием формы из внешней обработки?
|
|||
13
breakthrough
15.12.14
✎
11:01
|
(11) Oh my god! Здесь нет, а в моем коде уже есть. Или мне тебе продублировать его с этой директивой??? Смотри:
&НаКлиенте Процедура ЗаполнитьДокумент(ПараметрыВыполнения) Экспорт Форма = ПараметрыВыполнения.ЭтаФорма; Объект = Форма.Объект; АдресХранилищаТовары = ПоместитьВоВременноеХранилище(Объект.Товары.Выгрузить(),Форма.УникальныйИдентификатор ); ПараметрыОбработки = Новый Структура; ПараметрыОбработки.Вставить("АдресХранилищаТовары", АдресХранилищаТовары); ПараметрыОбработки.Вставить("ЗаполнятьЦеныПоПокупке", Истина); ПараметрыОбработки.Вставить("ДокументСсылка", Объект.Ссылка); ПараметрыОбработки.Вставить("ДокументДата", Объект.Дата); ПараметрыОбработки.Вставить("ДокументОрганизация", Объект.Организация); ПараметрыОбработки.Вставить("ДокументВалюта", Объект.ВалютаДокумента); //ПараметрыОбработки.Вставить("ДокументКурс", Объект.КурсВзаиморасчетов); //ПараметрыОбработки.Вставить("ДокументКратность", Объект.КратностьВзаиморасчетов); //ПараметрыОбработки.Вставить("ДокументСуммаВключаетНДС", Объект.СуммаВключаетНДС); //ПараметрыОбработки.Вставить("ДокументТипЦен", Объект.ТипЦен); ПараметрыОбработки.Вставить("ДокументСклад", Объект.Склад); //АдресХранилищаТовары = ПоместитьТоварыВоВременноеХранилищеНаСервере(); //ПоступлениеТоваровУслугФормыКлиент.ИзменитьТовары(ЭтаФорма, Команда, АдресХранилищаТовары); //ОткрытьФорму("Обработка.ИзменениеТаблицыТоваров.Форма.Форма", ПараметрыОбработки, // Форма, Форма.УникальныйИдентификатор); КонецПроцедуры |
|||
14
Fish
15.12.14
✎
11:04
|
(13) А откуда ты вызываешь эту процедуру? Тоже с сервера? А надо с клиента. А вообще, прежде чем тут сарказм показывать, и выдавать бессмысленные восклицания, разберись для начала, как работает 1С.
|
|||
15
breakthrough
15.12.14
✎
11:13
|
(14) Вызываю разумеется также с клиента:
&НаКлиенте Процедура ВыполнитьКоманду(ИмяКоманды, ОбъектыНазначения, ПараметрыВыполнения) Экспорт Если ИмяКоманды = "ЗаполнитьДокументПоПоступлению" Тогда ЗаполнитьДокумент(ПараметрыВыполнения); КонецЕсли; КонецПроцедуры А вы сами-то разобрались как работает 1С??? Если да, то что мешает подсказать, а не отвечать вопросом на вопрос. И что касается директив наКЛиенте и НаСервере - тут я думаю мало кто разобрался полностью. А если еще и говорить о передаче реквизитов между формой и сервером, то там вообще темный лес. |
|||
16
breakthrough
15.12.14
✎
11:14
|
(14) Поражают такие умники вроде тебя. Он как бы все знает, но ничего не говорит.
|
|||
17
Fish
15.12.14
✎
11:27
|
(15) Судя по ошибке в (5), ты где-то врёшь.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |