|
Программное создание документа в упр приложении | ☑ | ||
---|---|---|---|---|
0
Валидатор
20.02.14
✎
13:58
|
Хочу создать документ ТТн на основании 2х заказов, написал запрос, заполнил документ, потом хочу его открыть, и он мне открывает его как в обычном приложении, почему так?:
ТТН=Документы.ТТН.СоздатьДокумент(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ТТН.Организация = ВыборкаДетальныеЗаписи.Организация; ТТН.Дата = ВыборкаДетальныеЗаписи.Дата; ТТН.Контрагент = ВыборкаДетальныеЗаписи.Контрагент; НоваяСтрока = ТТН.Товары.Добавить(); Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда Продолжить; КонецЕсли; НоваяСтрока.ЕдиницаИзмерения = ВыборкаДетальныеЗаписи.ЕдиницаИзмерения; НоваяСтрока.Количество = ВыборкаДетальныеЗаписи.Количество; НоваяСтрока.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; НоваяСтрока.СтавкаНДС = ВыборкаДетальныеЗаписи.СтавкаНДС; НоваяСтрока.Сумма = ВыборкаДетальныеЗаписи.Сумма; НоваяСтрока.СуммаНДС = ВыборкаДетальныеЗаписи.СуммаНДС; НоваяСтрока.СуммаСНДС = ВыборкаДетальныеЗаписи.СуммаНДС + ВыборкаДетальныеЗаписи.Сумма; НоваяСтрока.Цена = ВыборкаДетальныеЗаписи.Цена; //НоваяСтрока.ЗаказВКарьер = ВыборкаДетальныеЗаписи.ЗаказКлиента; КонецЦикла; ТТН.записать(); ТТн.ПолучитьФорму("ФормаДокумента").Открыть(); |
|||
1
Wobland
20.02.14
✎
13:58
|
а если открыть значение?
|
|||
2
Валидатор
20.02.14
✎
13:59
|
(1) {Обработка.ОбработкаЗагрузкиТТН.Форма.Форма.Форма(115)}: Метод объекта не обнаружен (ОткрытьЗначение)
ТТн.ПолучитьФорму("ФормаДокумента").ОткрытьЗначение(); |
|||
3
Wobland
20.02.14
✎
14:01
|
ну так-то конечно
|
|||
4
Fedor-1971
20.02.14
✎
14:02
|
тип формы - управляемая? может "ФормаДокумента" - это обычная форма
|
|||
5
le_
20.02.14
✎
14:02
|
(0) Форма-то "ФормаДокумента" управляемая?
|
|||
6
Дмитрий666
20.02.14
✎
14:04
|
ты так и не доделал)
вроде бы открыть форму можно только на клиенте... точно не помню, посмотри в синтакс-помошнике |
|||
7
Дмитрий666
20.02.14
✎
14:06
|
УправляемаяФорма (ManagedForm)
Открыть (Open) Синтаксис: Открыть() Описание: Открывает форму и делает ее окно активным. Доступность: Тонкий клиент, веб-клиент, толстый клиент. Примечание: В управляемом приложении не следует выполнять программное открытие и закрытие одной и той же формы в одном вызове встроенного языка. |
|||
8
Wobland
20.02.14
✎
14:06
|
(6) спросим его по-другому: как он в Обработка.ОбработкаЗагрузкиТТН.Форма.Форма.Форма создаёт документ
|
|||
9
Wobland
20.02.14
✎
14:07
|
(8) не будем спрашивать, я знаю ответ
|
|||
10
Валидатор
20.02.14
✎
14:08
|
(9) вот так вот
&НаКлиенте Процедура Команда1(Команда) НаСервере(); КонецПроцедуры &Насервере Процедура НаСервере() СписокЗнач=новый СписокЗначений; Для Каждого Стр из Объект.ЗаказВКарьер Цикл СписокЗнач.добавить(Стр.ЗаказВКарьерКлиента); КонецЦикла; Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | ЗаказыКлиентовОстатки.Номенклатура, | ЗаказыКлиентовОстатки.ЗаказаноОстаток, | ЗаказыКлиентовОстатки.СуммаОстаток, | ЗаказыКлиентовОстатки.ЗаказКлиента, | ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка |ПОМЕСТИТЬ втОстатки |ИЗ | РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки |ГДЕ | ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0 | И ЗаказыКлиентовОстатки.ЗаказКлиента В(&СписокЗнач) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | втОстатки.Номенклатура, | ЗаказВКарьерТовары.Цена, | ЗаказВКарьерТовары.СтавкаНДС, | ЗаказВКарьерТовары.ЕдиницаИзмерения, | втОстатки.ЗаказаноОстаток КАК Количество, | втОстатки.СуммаОстаток КАК СуммаСНДС, | втОстатки.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма, | ВЫБОР | КОГДА втОстатки.ЗаказаноОстаток = 0 | ТОГДА 0 | ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * втОстатки.ЗаказаноОстаток | КОНЕЦ КАК СуммаНДС, | ЗаказВКарьерТовары.Ссылка.Контрагент КАК Контрагент, | ЗаказВКарьерТовары.Ссылка.Дата КАК Дата, | ЗаказВКарьерТовары.Ссылка.Менеджер КАК Менеджер, | ЗаказВКарьерТовары.Ссылка.Организация КАК Организация |ИЗ | втОстатки КАК втОстатки | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары | ПО втОстатки.Номенклатура = ЗаказВКарьерТовары.Номенклатура | И втОстатки.ЗаказКлиентаСсылка = ЗаказВКарьерТовары.Ссылка |ГДЕ | ЗаказВКарьерТовары.Ссылка В(&СписокЗнач)"; Запрос.УстановитьПараметр("СписокЗнач", СписокЗнач); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); ТТН=Документы.ТТН.СоздатьДокумент(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ТТН.Организация = ВыборкаДетальныеЗаписи.Организация; ТТН.Дата = ВыборкаДетальныеЗаписи.Дата; ТТН.Контрагент = ВыборкаДетальныеЗаписи.Контрагент; НоваяСтрока = ТТН.Товары.Добавить(); Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда Продолжить; КонецЕсли; НоваяСтрока.ЕдиницаИзмерения = ВыборкаДетальныеЗаписи.ЕдиницаИзмерения; НоваяСтрока.Количество = ВыборкаДетальныеЗаписи.Количество; НоваяСтрока.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; НоваяСтрока.СтавкаНДС = ВыборкаДетальныеЗаписи.СтавкаНДС; НоваяСтрока.Сумма = ВыборкаДетальныеЗаписи.Сумма; НоваяСтрока.СуммаНДС = ВыборкаДетальныеЗаписи.СуммаНДС; НоваяСтрока.СуммаСНДС = ВыборкаДетальныеЗаписи.СуммаНДС + ВыборкаДетальныеЗаписи.Сумма; НоваяСтрока.Цена = ВыборкаДетальныеЗаписи.Цена; //НоваяСтрока.ЗаказВКарьер = ВыборкаДетальныеЗаписи.ЗаказКлиента; КонецЦикла; ТТН.записать(); ТТн.ПолучитьФорму("ФормаДокумента"); //ОткрытиеФормы(ТТН); //ТТн.поткрыть(); КонецПроцедуры &НаКлиенте Процедура ОткрытиеФормы(Документ) КонецПроцедуры |
|||
11
Wobland
20.02.14
✎
14:09
|
отдай уже клиенту ссылку, она ему нужнее
|
|||
12
Валидатор
20.02.14
✎
14:10
|
&НаКлиенте
Процедура ОткрытиеФормы(Документ) КонецПроцедуры это все равно не работает, в процедуре НаСервере он не видит жтой функции про открытие формы |
|||
13
Валидатор
20.02.14
✎
14:11
|
{Обработка.ОбработкаЗагрузкиТТН.Форма.Форма.Форма(91,2)}: Процедура или функция с указанным именем не определена (ОткрытиеФормы)
<<?>>ОткрытиеФормы(ТТН); (Проверка: Сервер) |
|||
14
Wobland
20.02.14
✎
14:12
|
(11) и пусть он заоткрывает её насмерть
|
|||
15
Валидатор
20.02.14
✎
14:13
|
(14) есть нормальные рекомендации? кто кого понаоткрывает?
|
|||
16
Дмитрий666
20.02.14
✎
14:13
|
&НаКлиенте
Процедура Команда1(Команда) НаСервере(); открытьформу() КонецПроцедуры вот здесь открывай |
|||
17
Fram
20.02.14
✎
14:18
|
(15) В синтаксис помощнике набери "Ключ"
|
|||
18
Fram
20.02.14
✎
14:24
|
(15)
1. Переделай НаСервере() в функцию, возвращающую ссылку созданного документа 2. На клиенте открыть форму по полученной ссылке. Смотри (17) 3. Много читать про модель клиент-сервер в УФ |
|||
19
Victor111
20.02.14
✎
15:01
|
создавай документ на клиенте и там ево заполняй, потом и открыеш там форму безпроблем!
Док = ПолучитьФорму("Документ.ТТН.ФормаОбъекта",,ЭтаФорма); //создаем документ а значение для заполнения получай в функции, потом возвращай значение. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |