|
v7: Как открыть форму созданного документа | ☑ | ||
---|---|---|---|---|
0
sivsoft
14.03.12
✎
14:55
|
Доброго времени суток!
Надо открыть форму документа, который создается программно и заполнить его из другого документа. НалогНакл = СоздатьОбъект("Документ.НалоговаяНакладная"); НалогНакл.Новый(); //... //Далее заполняю И гм... как открыть форму с заполненным содержимым? |
|||
1
al_zzz
14.03.12
✎
15:01
|
А ты лучше заполни его сначала из другого документа, а потом открой. :-)
ОткрытьФорму(НалогНакл); |
|||
2
Ёпрст
14.03.12
✎
15:15
|
(0)
... НалогНакл.Записать(); ОткрытьФорму(НалогНакл.ТекущийДокумент()); |
|||
3
sivsoft
14.03.12
✎
15:41
|
Согласен так можно, но мне нужно чтобы документ не проводился/не записывался.
Идея в том что будут создаваться документы(просто для печати) проведение их не нужно, а чтобы не делать в Экселе, логичней взять инфу из 1С |
|||
4
ДенисЧ
14.03.12
✎
15:46
|
конт = "";
ОткрытьФорму("Документ.НалоговаяНакладная", конт); Конт.Тряляля = трулюлю; Конт.Форма.Обновить(); |
|||
5
zak555
14.03.12
✎
15:47
|
записать + отменить транзакцию =)
|
|||
6
sivsoft
14.03.12
✎
15:53
|
Получилось без записи по методе (4). Спасибо. :)
А как можно еще сделать, чтобы форма при закрытии не ругалась типа "сохранить документ?"? |
|||
7
zak555
14.03.12
✎
15:55
|
(6) СтрокаДействийФормы ?
|
|||
8
sivsoft
14.03.12
✎
16:08
|
1. Немного не понял как это реализовать с помощью СтрокаДействийФормы?
2. Как к кнопке обратиться в форме. Так: ОткрытьФорму("Документ.НалоговаяНакладная", ФормКонт); ФормКонт.кОК.Видимость(0); не получается :( |
|||
9
sivsoft
14.03.12
✎
16:37
|
Помогите плиз
|
|||
10
DimRom
14.03.12
✎
16:55
|
Видимость/Доступность кнопки обрабатывай в модуле Формы самого документа, а не там откуда открываешь
|
|||
11
DimRom
14.03.12
✎
16:56
|
ОткрытьФорму(<ОписательОбъекта>,<КонтекстФормы>)
<КонтекстФормы> - имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр. После исполнения данного метода система вернет в данную переменную контекст открытой формы (необязателен); вот по этому контексту в ПриОткрытии и закрывай |
|||
12
Ёпрст
14.03.12
✎
18:06
|
(6) разве что принудительно попробовать сбросить модифицированность формы
|
|||
13
sivsoft
15.03.12
✎
00:10
|
Но это все как я понимаю смогу сделать только меняя стандартный код налоговой и других доков. А этого очень не хочется. Нужна самодостаточность. Так можно сделать?
|
|||
14
Ёпрст
15.03.12
✎
09:18
|
(13) можно
|
|||
15
ЧеловекДуши
15.03.12
✎
09:23
|
(13)Используй формекс (для заполнения не записанного документа), или делай этот же фокус, но только с записанным документом (без всяких ВК).
|
|||
16
sivsoft
20.03.12
✎
11:18
|
Не получается заполнить таблицу в этом документе. Остальное заполняется. Делаю так(табличная часть пустая остается):
ПрихНаклВсе.ВыбратьСтроки(); Пока ПрихНаклВсе.ПолучитьСтроку() = 1 Цикл ФормКонт.НоваяСтрока(); ФормКонт.ТМЦ = ПрихНаклВсе.ТМЦ; ФормКонт.Кво = ПрихНаклВсе.Кво; ФормКонт.Ед = ПрихНаклВсе.Ед; ФормКонт.Коэффициент = ПрихНаклВсе.Коэффициент; ФормКонт.ЦенаБезНДС = ПрихНаклВсе.ЦенаБезНДС; ФормКонт.ЦенаСНДС = ПрихНаклВсе.ЦенаСНДС; ФормКонт.СуммаБезНДС = ПрихНаклВсе.СуммаБезНДС; ФормКонт.НДС = ПрихНаклВсе.НДС; ФормКонт.СуммаСНДС = ПрихНаклВсе.СуммаСНДС; Если Константа.ОсновнаяЦена = Перечисление.ВидыЦенВДокументах.ЦенаСНДС Тогда ФормКонт.СуммаБезСкидки = ФормКонт.СуммаСНДС; Иначе ФормКонт.СуммаБезСкидки = ФормКонт.СуммаБезНДС; КонецЕсли; КонецЦикла; ФормКонт.Форма.Обновить(); |
|||
17
Джинн
20.03.12
✎
11:23
|
(16) И не получится. Загрузи FormEx. После чего все будет работать.
|
|||
18
zak555
20.03.12
✎
12:00
|
(16) без ВК - смотри в (5)
|
|||
19
aka AMIGO
20.03.12
✎
12:11
|
в документе, из которого создаешь новый документ (который тебе нужен "без записи"):
ТЗЗ = создатьОбъект("ТаблицаЗначений"); //заготовка под ТЧ подчиненного документа ... Процедура СоздатьДокументРеализация() //... заполнение ТЗЗ Парам = СоздатьОбъект("СписокЗначений"); Парам.Установить("Команда","ИзЗаказаЗЧ"); Парам.Установить("ТЗЗ", ТЗЗ); ОткрытьФорму("Документ.РеализацияРозница", Парам); конецПроцедуры В Документе "РеализацияРозница" Процедура ПриОткрытии() Парам = Форма.Параметр; Если ТипЗначенияСтр(Парам)="СписокЗначений" Тогда ИначеЕсли Парам.Получить("Команда") = "ИзЗаказаЗЧ" Тогда ТЗЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗЗ = Парам.Получить("ТЗЗ"); Если ПустоеЗначение(ТЗЗ)=1 Тогда СтатусВозврата(0);Возврат; КонецЕсли; //Документ создается на основании Документа "ЗаказЗапасныхЧастей" //далее - заполнение шапки и ТЧ //всё.. док создан, не записан. точно то-же можно повторить в обработке |
|||
20
sivsoft
20.03.12
✎
14:52
|
В общем понятно - надо записывать.
1. А как отменить транзакцию? 2. Следы не остаются в базе после отмены? |
|||
21
Ёпрст
20.03.12
✎
14:56
|
(20) Транзакция тебе не поможет, а кто этот бред советует - сам так не делал никогда.
Штатно, можно либо передачей параметра в открываемую форму (тогда придется править ПриОткрытии (или ВВодНового) у документа, либо, если не править модуль формы - через обработку ожидания. Не штатно - загрузитьформекс и всё: будет доступен контекст открытой формы для создания новых строк через этот контекст. |
|||
22
Ёпрст
20.03.12
✎
14:58
|
+21
т.е Тебе нужно всего лишь написать: ЗагрузитьВнешнююКомпоненту("formex.dll"); Конт=""; ОткрытьФорму("Документ.НужныйВид",Конт); Конт.РеквизитШапки = ...; Конт.НоваяСтрока(); Конт.РеквизитТабличнойЧасти = ......; |
|||
23
sivsoft
20.03.12
✎
15:08
|
Так не хотелось компоненты дополнительные... ну да ладно.
А загрузить formex в глобальном модуле прописываю при старте? |
|||
24
Ёпрст
20.03.12
✎
15:11
|
(23) желательно да.
Если религия не позволяет их использовать - передавай параметр в открываемую форму, там лови и делай что хочешь.. Как в (19) примерно. Тока тебе придётся конфу править для этого. |
|||
25
sivsoft
20.03.12
✎
15:15
|
еще - а где formex.dll должна лежать в каталоге базы или в каталоге программы?
|
|||
26
Mikeware
20.03.12
✎
15:18
|
(25) главное, чтоб загружен был :-)
|
|||
27
aka AMIGO
20.03.12
✎
15:20
|
(23) я у тебя в ветке забанен? привел пример в (19) без всяких вк, чем не устраивает?
хотя.. мож и передумал.. даёшь ВК! :) |
|||
28
sivsoft
20.03.12
✎
15:48
|
(27) дык - это ж править надо конфу - очень не хочу трогать - там и так исправлений выше крыши.
|
|||
29
sivsoft
29.03.12
✎
12:39
|
В общем с formex получилось. Но тут вышла еще одна проблема :(.
Документы формируются на основе приходной накладной. И все бы ничего, но необходимо в налоговой и расходной менять конрагента на нашу фирму, а фирму на контрагента того - типа мы выписываем от другой фирме нам документы. И вот тут застопорился. 1С не дает мне выставлять вместо Фирмы контрагента, а вместо конрагента нашу фирму. Как можно решить проблему? |
|||
30
viktor_vv
29.03.12
✎
12:47
|
И правильно не дает, это ж разные справочники.
В контрагента добавляешь реквизит Фирма, в фирму добавляешь реквизит Контрагент соотвествующих типов значений. Заполняешь их и при формировании подставляй оттуда. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |