8.х 1C 8.2 провести документ из модуля формы

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Sergio2002, 2 июл 2013.

  1. TopicStarter Overlay
    Sergio2002
    Offline

    Sergio2002 Опытный в 1С

    Регистрация:
    5 мар 2013
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    26
    В форме документа "Возврат товаров от клиента" создал кнопку, по которой работает процедура
    отправки в 1С 7.7 возвращаемых товаров. Все работает нормально.
    Далее получаю подтверждение (с обработкой ожидания) от 7.7.
    и здесь же в этой процедуре формы хочу провести документ (если обмен прошел нормально).
    Код:
    &НаКлиенте
    Процедура ВозвратЧерез77(Команда)
    Если Вопрос("БУДЕТ ОФОРМЛЕН ВОЗВРАТ В 77 ПО НАКЛАДНОЙ № "+Объект.НомерНакВ77+" от "+Объект.ДатаНакВ77,РежимДиалогаВопрос.ОКОтмена)= КодВозвратаДиалога.ОК Тогда
    Если Строка(Объект.Контрагент) = "ТЕРМИНАЛ_1" Тогда
    ЗапросНаВозвратЧерез77();
    ПолучитьОтветВозврата(); 
    
    
    КонецЕсли;
    Иначе
    Возврат;
    КонецЕсли;
    КонецПроцедуры
    
    &НаСервере
    Процедура ЗапросНаВозвратЧерез77()
    Файло="C:\1c\EXCANGE\out.txt";
    ТД = Новый ТекстовыйДокумент;
    ТД.УстановитьТипФайла("windows-1251");
    Текст = "ВозвратОтПокупателя"+Символы.ПС+Объект.НомерНакВ77+Символы.ПС+Объект.ДатаНакВ77+Символы.ПС;
    Для каждого СтрПер Из Объект.Товары  Цикл
    Текст=Текст+Символы.ПС+СокрЛП(СтрПер.Номенклатура.Код)+" ; "+СокрЛП(СтрПер.Номенклатура.Наименование);
    Текст=Текст+" ; "+СокрЛП(СтрПер.Количество)+" ; "+СокрЛП(СтрПер.Цена)+" ; "+СокрЛП(СтрПер.Сумма);
    КонецЦикла;
    ТД.УстановитьТекст(Текст);					 
    ТД.Записать(Файло,"windows-1251");
    
    
    ФайлоКом="C:\1c\EXCANGE\cmd.txt";
    КФ = Новый ТекстовыйДокумент; 
    КФ.УстановитьТипФайла("windows-1251");
    ТекстКом = "ВозвратОтПокупателя "+Объект.НомерНакВ77+" "+Объект.ДатаНакВ77;
    КФ.УстановитьТекст(ТекстКом);					 
    КФ.Записать(ФайлоКом,"windows-1251");
    КонецПроцедуры
    &НаКлиенте
    Процедура ПолучитьОтветВозврата()  //файл ответа из 77 C:\1c\EXCANGE\error.txt
    Сообщить("Ответ о результате ждите через 25 сек при наличии связи");
    ПодключитьОбработчикОжидания("ПолучитьОтветИз77Возврат",25); //время 25 сек
    КонецПроцедуры
    &НаКлиенте
    Процедура ПолучитьОтветИз77Возврат()
    ИмяФайла = "C:\1c\EXCANGE\error.txt";
    ТекстОтвета = Новый ТекстовыйДокумент; //ИзвлечениеТекста(ИмяФайла);
    ТекстОтвета.Прочитать(ИмяФайла);
    Ответ = ТекстОтвета.ПолучитьТекст();
    Если ПустаяСтрока(Ответ) Тогда
    Предупреждение("77 не создала ПНК-возврата:
    |- подождите следующего сообщения
    |- если картина не изменится НЕОБХОДИМО СООБЩИТЬ АДМИРИСТРАТОРУ");
    Иначе
    Сообщить(Ответ);
    ТекстОтвета.Очистить();
    ТекстОтвета.Записать(ИмяФайла);
    ОтключитьОбработчикОжидания("ПолучитьОтветИз77Возврат");
    ЭтаФорма.Записать(РежимЗаписиДокумента.Проведение);
    ЭтаФорма.Закрыть();
    КонецЕсли;
    КонецПроцедуры
    
    ТАК ВОТ ВОПРОС: РУГАЕТСЯ НА СТРОЧКУ "ЭтаФорма.Записать(РежимЗаписиДокуменат.Проведение)"
    {Документ.ВозвратТоваровОтКлиента.Форма.ФормаДокумента.Форма(2506)}: Ошибка при вызове метода контекста (Записать)
    ЭтаФорма.Записать(РежимЗаписиДокумента.Проведение);
    по причине:
    Несоответствие типов (параметр номер '1')



    как описать проведение документа и закрыть форму (с сохранением)????

    Пробовал процесс записи описать в серверной части - тоже не получается.
  2. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Из Синтакс-помощника:

    т.е. в параметр метода "Записать" надо передать структуру, а Вы передаете режим записи.

    Код:
    ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
    Записать(ПараметрыЗаписи);
    Закрыть();
  3. TopicStarter Overlay
    Sergio2002
    Offline

    Sergio2002 Опытный в 1С

    Регистрация:
    5 мар 2013
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    26
    Огромное Спасибо. Как приятно, действительно, осознать, что ты что-то узнал!!!!!!!!!!! :)
    "Век живи - век осознавай - жизнь будет прекрасна" :)
    Все получилось. Я очень благодарен.
  4. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Не за что.)

    Тут главное не перепутать ))
    Метод "Записать()" есть у ДокументОбъекта. Там в параметр передается режим записирежим проведения).
    Также метод "Записать()" есть у формы (это расширение формы документа). Вот тут в параметр передается структура, куда можно включить режим записи и режим проведения.
    Вы используете именно метод формы.
  5. TopicStarter Overlay
    Sergio2002
    Offline

    Sergio2002 Опытный в 1С

    Регистрация:
    5 мар 2013
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    26
    Еще раз ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ БЛАГОДАРЕНИЕ.
    После того, как Вы мне подсказали о структуре, я это проанализировал. Все понял.

Поделиться этой страницей