Имя: Пароль:
1C
1С v8
Документы внешняя обработка
,
0 Akkreditator
 
09.12.14
14:58
На внешнеей обработки есть две кнопки старт финиш по одной хочу создать документ по другой записать

&НаСервере
Функция РаботаСРасходом(ПараметрКоманды)
    Если ПараметрКоманды = 1 Тогда
    Док = Документы.РасходнаяНакладная.СоздатьДокумент();        
    ИначеЕсли ПараметрКоманды = 2 Тогда
            Док.Записать();
        КонецЕсли;
        
КонецФункции


&НаКлиенте
Процедура Старт(Команда)
    РаботаСРасходом(1);
КонецПроцедуры

&НаКлиенте
Процедура Финиш(Команда)
    РаботаСРасходом(2);
КонецПроцедуры

Док.Записать не получается
1 butterbean
 
09.12.14
15:00
надо бы процедуре указать то, что ты собираешься записывать
2 Жан Пердежон
 
09.12.14
15:00
оДок = Док.ПолучитьОбъект();
оДок.Записать();

при условии, что Док - реквизит формы
3 ДенисЧ
 
09.12.14
15:02
не прокатит
4 Akkreditator
 
09.12.14
15:03
Что не прокатит
5 Akkreditator
 
09.12.14
15:06
Если вот так то все норм

Функция РаботаСРасходом(ПараметрКоманды)
    Если ПараметрКоманды = 1 Тогда
    Док.Создать
    док.записать    
    ИначеЕсли ПараметрКоманды = 2 Тогда
            Сообщить("Финиш");
        КонецЕсли;
        
КонецФункции

Но по нажатию только первой кнопке, по нажатию второй не получается записать
6 Akkreditator
 
09.12.14
15:08
{Форма.Форма.Форма(9)}: Значение не является значением объектного типа (Записать)
    Об.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);         ошибка такого формата
7 rbcvg
 
09.12.14
15:11
(6) "Об.Записать" -  Что есть Об?
8 Akkreditator
 
09.12.14
15:14
Типа док.записать
9 Akkreditator
 
09.12.14
15:14
&НаСервере
Функция РаботаСРасходом(ПараметрКоманды)
        
Если ПараметрКоманды = 1 Тогда
    Док = Документы.РасходнаяНакладная.СоздатьДокумент();    
ИначеЕсли ПараметрКоманды = 2 Тогда
    Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);        
КонецЕсли;

КонецФункции
10 Жан Пердежон
 
09.12.14
15:14
(2) точнее так
Если ПараметрКоманды = 1 Тогда
    ДДок = Документы.РасходнаяНакладная.СоздатьДокумент();
    ЗначениеВРеквизитФормы(ДДок,"Док");
Иначе
    оДок = РеквизитФормыВЗначение("Док");
    оДок.Записать();
КонецЕсли;
11 Akkreditator
 
09.12.14
15:14
{Форма.Форма.Форма(9)}: Значение не является значением объектного типа (Записать)
    Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);
12 ДенисЧ
 
09.12.14
15:15
Я ж говорю... Не прокатит такая схема...
При уходе с сервера у тебя переменная занулится...
13 Жан Пердежон
 
09.12.14
15:17
(12) все норм, не гони, пацан к успеху идет
14 EugeniaK
 
09.12.14
15:18
(0) Переменная Док живет только внутри процедуры РаботаСРасходом.
Как только ты из нее уходишь, переменная теряется.
15 Akkreditator
 
09.12.14
15:26
&НаСервере
Функция РаботаСРасходом(ПараметрКоманды)
П = Новый Структура("Документ");        
Если ПараметрКоманды = 1 Тогда
    Док = Документы.РасходнаяНакладная.СоздатьДокумент();
    П.Вставить("Документ",Док);
ИначеЕсли ПараметрКоманды = 2 Тогда
    НДок = П.Свойство("Документ");
    НДок.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);        
КонецЕсли;

КонецФункции
16 Akkreditator
 
09.12.14
15:26
а так?!
17 Akkreditator
 
09.12.14
15:27
уже понял что нет