Имя: Пароль:
 
1C
1С v8
Пытаюсь вызвать процедуру формы документа, что не так, как правильно, как жить с этим)??
0 General833
 
30.05.18
11:43
Можно ли так делать? ИЗ ВНЕШНЕЙ обработки (модуля формы), вызывать процедуру модуля формы документа (уже записаного). Или как равильно должно быть?

КОД:
Процедура  СоздатьДокументУстЦенНоменклатуры(СсылкаДок);
    
    ДокУстЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    ДокУстЦен.Дата = ТекущаяДата();    
    
    ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ДокУстЦен.ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"),,,,);
    ДокУстЦен.НеПроводитьНулевыеЗначения = Истина;
    ДокУстЦен.Записать();
    
ФормаДок = ПолучитьФорму("Документ.УстановкаЦенНоменклатуры.ФормаДокумента", новый Структура("Ключ",ДокУстЦен.Ссылка));
    ФормаДок.ЗаполнитьТабличнуюЧастьПоПоступлениюНаОсновании(СсылкаДок,Перезаполнение=Ложь)    
    ДокУстЦен.Записать(РежимЗаписиДокумента.Проведение);
    
КонецПроцедуры    

ОШИБКА: {ВнешняяОбработка.ВнешняяОбработка2.Форма.Форма.Форма(183)}: Метод объекта не обнаружен (ЗаполнитьТабличнуюЧастьПоПоступлениюНаОсновании)
    ФормаДок.ЗаполнитьТабличнуюЧастьПоПоступлениюНаОсновании(СсылкаДок, Истина);
1 shuhard
 
30.05.18
11:44
(0)[как жить с этим]
молча
2 General833
 
30.05.18
11:45
))
3 Мимохожий Однако
 
30.05.18
11:47
(0) Незя..Скопируй в обработку нужные процедуры и пользуйся
4 General833
 
30.05.18
11:49
(3) Понял, копирую...
5 DrShad
 
30.05.18
11:51
не нужно ничего копировать и не нужно ее вызывать
в процедуре перед открытием есть ее вызов, если

Если ЗначениеЗаполнено(ПараметрОснование)
       И ТипЗнч(ПараметрОснование) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
6 Джинн
 
30.05.18
11:53
Оппять клюшечник?
7 ЦиркУехал
 
30.05.18
11:56
(0) в 8.3  у документа 2 модуля.
из одного можно из второго нельзя.
8 1Сергей
 
30.05.18
12:00
(7) чёт, мало ты, всего два насчитал :)
9 DrShad
 
30.05.18
12:01
(8) +1
10 General833
 
30.05.18
12:01
(5) Спасибо, сейчас попробую.
11 ЦиркУехал
 
30.05.18
12:05
(8) у документа 2 Модуля
Модуль объекта и модуль менеджера.

Если Модуль менеджера тогда

МойСупердок.СделатьВcеНаСвете();
иначе
объектПроц=РеквизитФормыВЗначение("Объект");
объектПроц.СделатьВcеНаСвете();
и то тока на форме.
КонецЕсли;
12 DrShad
 
30.05.18
12:08
(11) да цирк таки уехал (((
13 General833
 
30.05.18
12:09
(5) Пардон, что-то туплю, ну есть она ПередОткрытием, а как ее вызвать? Подскажите пож. Что-то голова не соображает сегодня...
14 General833
 
30.05.18
12:10
(5) У меня программно, без выбора пользователя, должен создаваться документ...
15 General833
 
30.05.18
12:11
(11) Пробую )))
16 DrShad
 
30.05.18
12:12
(13) не надо ее вызывать - она сама вызовется, когда форму дока откроешь
17 ЦиркУехал
 
30.05.18
12:12
(13) у документа такой нет .

ПередОткрытием стесняюсь спросить чего ??
18 ЦиркУехал
 
30.05.18
12:14
(16) ПередОткрытием не вызовется, её просто нет такой :(
19 General833
 
30.05.18
12:14
(17) Модуль формы, есть, только, что этим хотели сказать, пока не могу понять..
20 General833
 
30.05.18
12:15
Вот кусок кода и этой процедуры:     Если ЗначениеЗаполнено(ПараметрОснование)
       И ТипЗнч(ПараметрОснование) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
        Если НЕ ЗначениеЗаполнено(ПараметрОснование.ТипЦен) Тогда
            ОбщегоНазначения.СообщитьОбОшибке("В документе " + СокрЛП(ПараметрОснование) + " не установлен тип цен! Заполнение невозможно.", Отказ);
            Возврат;
        КонецЕсли;

        Если НЕ ЗначениеЗаполнено(ПараметрОснование.ТипЦен.ТипЦеныНоменклатуры) Тогда
            ОбщегоНазначения.СообщитьОбОшибке("В документе "  + СокрЛП(ПараметрОснование) + " для типа цен " + СокрЛП(ПараметрОснование.ТипЦен) + " не установлен базовый тип цен! Заполнение невозможно.", Отказ);
            Возврат;
        КонецЕсли;

        ЗаполнитьТабличнуюЧастьПоПоступлениюНаОсновании(ПараметрОснование);
    КонецЕсли;
21 ЦиркУехал
 
30.05.18
12:15
(19) все-таки форма ??
хмм
цитата.
У меня программно, без выбора пользователя, должен создаваться документ...
22 General833
 
30.05.18
12:18
(21) Я просто, хочу передать параметр (ДокументОснование) в процедуру формы документа (УстановкаЦен).
Сама процедура-
ЗаполнитьТабличнуюЧастьПоПоступлениюНаОсновании(ПараметрОснование);
23 General833
 
30.05.18
12:19
Вот, не пойму, куак это выполнить...
24 General833
 
30.05.18
12:19
правильно...
25 ЦиркУехал
 
30.05.18
12:21
(24) Заполнение на основании находится в 1 модуле в который не залезешь из обработки.
так что выноси.
26 General833
 
30.05.18
12:23
ВСе таки копировать в обработку )))
27 General833
 
30.05.18
12:23
(25) Спасибо!
28 ЦиркУехал
 
30.05.18
12:23
(22) а  так в чем проблема то ??

найди основание документа и запихай.
ЗаполнитьТабличнуюЧастьПоПоступлениюНаОсновании(ПараметрОснование);
29 ЦиркУехал
 
30.05.18
12:24
(27) в реквизитах Есть Документ Основание?
30 ЦиркУехал
 
30.05.18
12:27
(28) или надо создать документ с определенным основанием?
31 General833
 
30.05.18
12:27
(29) Блин, точно! Сейчас попробую...
32 DrShad
 
30.05.18
12:28
(25) серьезно?

а как же такой код

УстановкаЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
УстановкаЦен.Заполнить(ДокументОснования);
33 General833
 
30.05.18
12:30
(32) ))) Я наверно, сейчас, долго буду смеяться...
34 ЦиркУехал
 
30.05.18
12:32
(32) из Формы не получится .
я просто не понял, что и откуда.
35 ЦиркУехал
 
30.05.18
12:33
(33) тебе при создании документа нужно найти какое нить  основание.
и записать в реквизит.
36 General833
 
30.05.18
12:39
(35) И такое тоже сейчас попробую...
37 General833
 
30.05.18
16:03
(35) Спасибо!