![]() |
![]() |
![]() |
|
Как программно открыть управляемую форму документа? | ☑ | ||
---|---|---|---|---|
0
Alyonchik1
16.12.16
✎
17:05
|
помогите, пожалуйста, Как программно открыть управляемую форму документа с процедуры "ОбработкаЗаполнения"
Процеруды не работают(( ОткрытьФорму(); ОткрытьЗначение(); и через ПолучитьФорму("") тоже не получилось, так как ОбработкаЗаполнения выполняется на сервере ОткрытьФорму() - доступность Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент) ОткрытьЗначение() - доступность Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент) ПолучитьФорму() - доступность Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент) с сервера форму открыть никак не могу(( |
|||
1
Cool_Profi
16.12.16
✎
17:06
|
И не сможешь. Меняй постановку задачи
|
|||
2
Господин ПЖ
16.12.16
✎
17:06
|
нет на сервере формы
|
|||
3
Alyonchik1
16.12.16
✎
17:06
|
Надо при создании на основании (заказ на перемещение) создать - документ(заказ покупателю) и создать и заполнить другой документ (заказ поставщику)
И что бы открылись 2 заполенные документа заказ покупателю и заказ поставщику |
|||
4
Господин ПЖ
16.12.16
✎
17:10
|
ну так заполняй. а откроешь потом
|
|||
5
Господин ПЖ
16.12.16
✎
17:11
|
или у вас как в лучших домах европы вся бизнес-логика на форме "лежит"? тогда увы
|
|||
6
Alyonchik1
16.12.16
✎
17:13
|
Ну хорошо, как потом открыть? Что-то не получается
|
|||
7
Мимохожий Однако
16.12.16
✎
17:16
|
Например
&НаКлиенте Процедура ОткрытиеДокумента() ... СсылкаНаОбъект=ПолучитьСсылкуНаОбъект(); ОткрытьФорму("Документ.ЗаказПокупателя.ФормаОбъекта", Новый Структура("Ключ", СсылкаНаОбъект)); Закрыть(); КонецПроцедуры &НаСервере Функция ПолучитьСсылкуНаОбъект() Возврат Объект.СсылкаНаОбъект; КонецФункции |
|||
8
Alyonchik1
16.12.16
✎
17:20
|
Да там еще расширение используется((
то есть передавать процедуру с модуля объекта и на форму ее там открывать? |
|||
9
h-sp
16.12.16
✎
17:23
|
(8) зачем передавать процедуру?
|
|||
10
Alyonchik1
16.12.16
✎
17:25
|
так как? что-то понять не могу
|
|||
11
h-sp
16.12.16
✎
17:28
|
(10) ну ты ведь на клиенте находишься: "при создании на основании (заказ на перемещение) "
у тебя открывается этот заказ на перемещение. На клиенте. В этот же момент открывай и оба других заказа. |
|||
12
Alyonchik1
16.12.16
✎
17:28
|
(9) Я же создаю новый документ на основании заказ на перемещение создаю - документ заказ покупателю и программно - заказ поставщику. Так как открыть этот заказ поставщику?
|
|||
13
Alyonchik1
16.12.16
✎
17:28
|
(11) На сервере нахожусь
|
|||
14
Мимохожий Однако
16.12.16
✎
17:29
|
Чтобы не гадать кидай сюда свой код, не стесняйся. Все свои ))
|
|||
15
h-sp
16.12.16
✎
17:29
|
когда открывается на основании, ты на клиенте.
|
|||
16
Alyonchik1
16.12.16
✎
17:30
|
(11) я нахожусь в модуле объекта ОбработкаЗаполнения() - это сервер
|
|||
17
Alyonchik1
16.12.16
✎
17:31
|
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения); Если ДанныеЗаполнения.Свойство("ОбработкаФормированиеЗаказов") Тогда ДанныеШапкиДокумента = ДанныеЗаполнения.Реквизиты; ДанныеТабличнойЧасти = ДанныеЗаполнения.Товары; ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеШапкиДокумента); КэшированныеЗначения = ОбработкаТабличнойЧастиТоварыКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения(); ЗаполнитьТабличнуюЧастьИзОбработкиФормированиеЗаказов(ДанныеТабличнойЧасти, КэшированныеЗначения); КонецЕсли; ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда ОбщегоНазначенияРТ.ПроверитьВозможностьВводаНаОсновании(ДанныеЗаполнения); Если ДанныеЗаполнения.Статус = Перечисления.СтатусыЗаказовПокупателей.НеСогласован Тогда ТекстОшибки = НСтр("ru='Заказ не согласован. |Заполнение документа не выполнено.'"); ВызватьИсключение ТекстОшибки; ИначеЕсли ДанныеЗаполнения.Статус = Перечисления.СтатусыЗаказовПокупателей.Закрыт Тогда ТекстОшибки = НСтр("ru='Заказ закрыт. |Заполнение документа не выполнено.'"); ВызватьИсключение ТекстОшибки; КонецЕсли; Организация = ДанныеЗаполнения.Организация; ЗаказПокупателя = ДанныеЗаполнения.Ссылка; МагазинПолучатель = ДанныеЗаполнения.Магазин; РозничныеПродажиСервер.ЗаполнитьТабличнуюЧастьПоОстаткамЗаказаБезРезерва(ЭтотОбъект, "Товары", ЗаказПокупателя); ИнициализироватьДокумент(); ОбщегоНазначенияРТ.ПроверитьИспользованиеОрганизации(,,Организация); // начало 16.12.16 Ниракс Василенко А. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказПокупателяТовары.Ссылка, | ЗаказПокупателяТовары.НомерСтроки, | ЗаказПокупателяТовары.Номенклатура, | ЗаказПокупателяТовары.Характеристика, | ЗаказПокупателяТовары.Количество, | ЗаказПокупателяТовары.Упаковка, | ЗаказПокупателяТовары.КоличествоУпаковок, | ЗаказПокупателяТовары.Цена, | ЗаказПокупателяТовары.Продавец, | ЗаказПокупателяТовары.ПроцентАвтоматическойСкидки, | ЗаказПокупателяТовары.ПроцентРучнойСкидки, | ЗаказПокупателяТовары.Сумма, | ЗаказПокупателяТовары.СтавкаНДС, | ЗаказПокупателяТовары.СуммаНДС, | ЗаказПокупателяТовары.СуммаАвтоматическойСкидки, | ЗаказПокупателяТовары.СуммаРучнойСкидки, | ЗаказПокупателяТовары.КлючСвязи, | ЗаказПокупателяТовары.КодСтроки, | ЗаказПокупателяТовары.Резервировать, | ЗаказПокупателяТовары.Отменено, | ЗаказПокупателяТовары.ПричинаОтмены, | ЗаказПокупателяТовары.ПродажаПодарка, | ЗаказПокупателяТовары.Ниракс_СкладСборки |ИЗ | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары |ГДЕ | ЗаказПокупателяТовары.Ссылка = &Ссылка | И ЗаказПокупателяТовары.Резервировать = ЛОЖЬ"; Запрос.УстановитьПараметр("Ссылка", ЗаказПокупателя.Ссылка); Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда Выгрузка = Результат.Выгрузить(); НовыйЗаказПоставщику = Документы.ЗаказПоставщику.СоздатьДокумент(); НовыйЗаказПоставщику.Организация = ДанныеЗаполнения.Организация; НовыйЗаказПоставщику.ЗаказПокупателя = ДанныеЗаполнения.Ссылка; НовыйЗаказПоставщику.Магазин = ДанныеЗаполнения.Магазин; НовыйЗаказПоставщику.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Тоговый дом"); НовыйЗаказПоставщику.Ответственный = Пользователи.ТекущийПользователь(); НовыйЗаказПоставщику.Статус = Перечисления.СтатусыВнутреннихЗаказов.КВыполнению; НовыйЗаказПоставщику.ДатаПоступления = ТекущаяДатаСеанса(); НовыйЗаказПоставщику.Товары.Загрузить(Выгрузка); //НовыйЗаказПоставщику.ПолучитьФорму("ФормаДокумента").Открыть(); //ОткрытьФорму("Документ.ЗаказПоставщику.Форма.ФормаДокумента",НовыйЗаказПоставщику); //ОткрытьЗначение(НовыйЗаказПоставщику); //ОткрытьДокумент(НовыйЗаказПоставщику); КонецЕсли; |
|||
18
Alyonchik1
16.12.16
✎
17:34
|
что-то много кода скопировала) на этом сайте новичок пока)
|
|||
19
Мимохожий Однако
16.12.16
✎
17:36
|
Конфигурация ЗУП3.0 ))
|
|||
20
Alyonchik1
16.12.16
✎
17:40
|
(19) Нет - розница 3
|
|||
21
Мимохожий Однако
16.12.16
✎
17:53
|
Предполагаю, что у тебя на форме есть кнопка и команда по вызову заполнения. Верни в процедуру команды ссылки созданных документов и открой как в примере. Например, в структуру данные заполнения добавь два ключа "СсылкаНаЗаказПокупателя", "СсылкаНаЗаказПоставщику". Как-то так
|
|||
22
Alyonchik1
16.12.16
✎
17:57
|
(21) Что то найти не могу такого возврата (Верни в процедуру команды ссылки созданных документов и открой как в примере.)
ИнициализироватьДокумент(); - это основные значения подставляет ОбщегоНазначенияРТ.ПроверитьИспользованиеОрганизации(,,Организация);- это тоже не то(( |
|||
23
Мимохожий Однако
16.12.16
✎
18:00
|
Ты здесь показала процедуру, а как ты в неё попадаешь? Включи режим отладки, поставь точку останова, найди по стёку вызовов.
|
|||
24
Fragster
гуру
16.12.16
✎
18:05
|
в синтакс помощнике открой УправляемаяФорма расширение документов параметры формы
|
|||
25
Alyonchik1
16.12.16
✎
18:05
|
(23) http://v8.1c.ru/metod/faq2/answer.jsp?id=652&printversion=1
Вот что такое ОбработкаЗаполнения() и как она открывается и попадаю я сразу туда после нажатия создать на основании |
|||
26
Fragster
гуру
16.12.16
✎
18:05
|
нужно указать параметр Основание
|
|||
27
Fragster
гуру
16.12.16
✎
18:05
|
в процедуре открытьформу
|
|||
28
Alyonchik1
16.12.16
✎
18:06
|
(27) не могу читай в начале темы пояснения почему. Вот вопрос как открыть
|
|||
29
Fragster
гуру
16.12.16
✎
18:11
|
(28) открывай форму с клиента, а не с сервера
|
|||
30
Garykom
гуру
16.12.16
✎
18:11
|
Диалог в тему (с другом), авторская орфография и пунктуация соблюдены:
Д>а еще они везде передаютв функции и модули саму форму Д>и из параметров берут датлицу и работают с ней Д>для заполнения например Я>а вот за это убивать надо Я>за передачу формы как параметр Д> я переделываю понемногу Д> делаю таб часть Д> вместо паратмер формы Д> чтобы работали их долбанные алгоритмя Д> делаю пременную в молу формы экспорт по имени параметра Д> и присваю ему сслку на ТЧ Д> так хоть переписывать ненадо 100% кода ихнего |
|||
31
Мимохожий Однако
16.12.16
✎
18:24
|
Еще раз...Режим отладки включать умеешь?
|
|||
32
Alyonchik1
16.12.16
✎
19:31
|
(31) конечно)
|
|||
33
Alyonchik1
16.12.16
✎
19:40
|
(30) что-то не поняла как это относится к теме))
|
|||
34
mehfk
16.12.16
✎
19:45
|
Шла вторая половина второго десятилетия XXI века. Тупые одинэсники все еще принимали усилия к показыванию формы на сервере...
|
|||
35
Garykom
гуру
16.12.16
✎
19:54
|
(33) примерно так Методы ПолучитьФорму() УФ &НаСервере
Ну не надо передавать ссылку на форму как параметр в своиъ процедурах/функциях! Передавать нуна более простые объекты (массивы, ТЧ и т.д.) или ссылки на объекты в бд. |
|||
36
Alyonchik1
16.12.16
✎
20:10
|
(29) Понимаю, что надо открывать с клиента! Но как? я нахожусь на сервере в модуле объекта. Как лучше открыть? куда передавать на форму?
|
|||
37
Garykom
гуру
16.12.16
✎
20:11
|
(36) Вернуться на клиента и "переписать нафуй все тут"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |