7.7 Создать документ из формы списка журнала документов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Samouchka, 25 май 2014.

  1. TopicStarter Overlay
    Samouchka
    Offline

    Samouchka Опытный в 1С

    Регистрация:
    20 мар 2013
    Сообщения:
    214
    Симпатии:
    1
    Баллы:
    29
    Всем здравствуйте. Есть журнал документов "Товары". В его форме списка сделал кнопку "Оплатить", при нажатии на которую надо создать документ "Платежное поручение", как бы введя его на основании того документа поступления, на котором сейчас спозиционирован курсор в журнале. Пишу код, отработав который конфигуратор сообщает: "Не выбран документ!". Тыщу раз писал то же самое в формах документов, откуда создавались другие документы на "Ура". Помогите, может что-то по-другому нужно в модуле формы списка журнала документов писать:
    Код:
    Перем Платежка;
     
    Процедура ОплатитьПоступление()
        ДокОснование=СоздатьОбъект("Документ.ПоступлениеТоваров");
        ДокОснование.ТекущийДокумент();
        Платежка=СоздатьОбъект("Документ.ПлатежноеПоручение");
        Платежка.ДатаДок=РабочаяДата();
        Платежка.УстановитьНовыйНомер();
        Платежка.Контрагент = ДокОснование.Контрагент;
        Платежка.Сумма = ДокОснование.Итог("Всего");
        Платежка.Договор = ДокОснование.Договор;
        Платежка.ДокументПоставки = ДокОснование.ДокументОснование;
        Платежка.ТекущийДокумент().Записать();
    КонецПроцедуры
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    вместо
    Платежка.ТекущийДокумент().Записать();

    нужно

    Платежка.Записать();
    В данном случае пока документ не записан - ТекущийДокумент() пустой. Ссылки то в БД нет!
    И вообще... Зачем такие сложности? А вдруг в форме платежки нужно что-то поправить? Иди сразу распечатать...
    Я бы делал так

    Если ТекущийДокумент().Выбран()=1 Тогда
    ОткрытьФорму("Документ.ПлатежноеПоручение",,ТекущийДокумент());
    КонецЕсли;

    Разумеется в документе платежки д.б. прописаны правила заполнения на основании.
  3. TopicStarter Overlay
    Samouchka
    Offline

    Samouchka Опытный в 1С

    Регистрация:
    20 мар 2013
    Сообщения:
    214
    Симпатии:
    1
    Баллы:
    29
    Нужно было вместо
    ДокОснование.ТекущийДокумент();
    написать:
    ДокОснование.ТекущийДокумент.ТекущийДокумент();
    вот в чём дело было!
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Если вы имеете ввиду вот этот кусок
    ДокОснование=СоздатьОбъект("Документ.ПоступлениеТоваров");
    ДокОснование.ТекущийДокумент();

    заменить на
    ДокОснование=СоздатьОбъект("Документ.ПоступлениеТоваров");
    ДокОснование.ТекущийДокумент.ТекущийДокумент();

    то вы не правы... Код явно не рабочий. У объекта "документ" нет АТРИБУТА "ТекущийДокумент". Есть МЕТОД "ТекущийДокумент()"

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