8.х создать и сохранить договор

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Fira, 18 окт 2012.

  1. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    Всем доброго дня. Помогите мне создать программно и сохранить договор контрагента.
    Код:
    если контрагент =справочники.Контрагенты.Выбрать() тогда
    
    договор= справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
    
    договор.Наименование= "основное";
    
    договор.Владелец=Конрагент;
    ОсновнойДоговорКонтрагента = договор.Ссылка;
    НовыйОсновнойДоговорУказан = Истина;
    договор.записать();
    
    ЭтаФорма.Обновить();
    КонецЕсли;
    
    Он у меня ругается, что не может создать такой объект с таким названием

    Вот эта ошибка :

    Код:
    Значение не является значением объектного типа (Наименование)
    договор.Наименование= "основное";
    
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну первое
    контрагент =справочники.Контрагенты.Выбрать() - возвращает вам выборку..а не один элемент
    По этому
    договор.Владелец=Конрагент - это не работает

    И вот это ОсновнойДоговорКонтрагента = договор.Ссылка;
    После записать
  3. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    контрагент =справочники.Контрагенты.Выбрать() - возвращает вам выборку..а не один элемент - ЭТО удалила.

    И вот это ОсновнойДоговорКонтрагента = договор.Ссылка; ---Это перенесла.
    все равно ошибка тоже самая
  4. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    ставьте точку останова после "договор= справочники.ДоговорыКонтрагентов.СоздатьЭлемент();" и с помощью
    "Вычеслить" (в меню конфигуратора есть такая кнопка) смотрите какие поля нужно заполнить, какие заполняются, по этапам (шаг вперед клавиша "F10")

    еще переменная "договор" может быть использована как реквизит или глобальная переменная, используте другое наименование переменной например "НовыйДоговор"

    как вам подскажет фантазия
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Удялть не дадо было, надо из этой выборки элемент получить хотя бы так
    договор.Владелец=Конрагент.Следующий() посмотрите в синтаксис поммошнике есть пример.
    Напиште у вас какое приложение обычное или управляемое?
  6. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    не понимаю. совсем ничего. пусто. будто у меня кнопки не работают((

    приложение обычное
  7. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    все выражения ошибочны пишет
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Весь код покажите и в какой месте он располагается
  9. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    это внешняя обработка :


    Код:
    Процедура ПолучитьАдресНажатие(Элемент)
    
    если не ЭтотОбъект.Конрагент.Пустая() Тогда
    контрагент =справочники.Контрагенты.Выбрать() ;
    
    договор= справочники.контрагенты.СоздатьЭлемент();
    
    договор.Наименование= "основное";
    
    договор.Владелец=Конрагент.выбрать().следующий();
    НовыйОсновнойДоговорУказан = Истина;
    договор.записать();
    ОсновнойДоговорКонтрагента = договор.Ссылка;
    
    ЭтаФорма.Обновить();
    КонецЕсли;
    
    КонецПроцедуры
    
    
  10. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    попробуйте так


    Код:
    если Контрагент<>Справочники.Контрагенты.ПустаяСсылка() Тогда
    
    Договор=Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
    Договор.Наименование="Основной";
    Договор.Владелец=Контрагент;
    Договор.Записать();
    Контрагент.ОсновнойДоговорКонтрагента=Договор.Ссылка;
    
    
    Конецесли; 
  11. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    сначала выдал ошибку, что контрагент не определен.
    я добавила
    Код:
    контрагент =справочники.Контрагенты;
    
    в начале кода
    .запустила. ошибка та же.
  12. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну у Вас в коде
    если не ЭтотОбъект.Конрагент.Пустая() Тогда - это что? тут конечно с ошибкой написанно
    В моем коде поставьте тогда так


    Код:
    если Конрагент<>Справочники.Контрагенты.ПустаяСсылка() Тогда
    Договор=Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
    Договор.Наименование="Основной";
    Договор.Владелец=Контрагент;
    Договор.Записать();
    Контрагент.ОсновнойДоговорКонтрагента=Договор.Ссылка;
    
    Конецесли;
  13. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    У Вас "Контрагент" - элемент формы, реквизит формы или реквизит обработки ?
    откуда вы берете значение ?
  14. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    в реквизитах я создала -Контрагент и данные беру справочники.контрагенты.ссылка

    а на форме создала надпись где идет привязка к этому конрагенту
  15. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    1. В реквизитах формы ? или обработки ?
    2. На форме надпись или поле ввода ?
  16. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    1. обработки.
    2. поле ввода
  17. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    создала обработку. далее та есть : реквизиты - формы- макет. свой контрагент я создала в реквизитах. это считается реквизит формы или обработки?
  18. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    попробуй так
    Код:
     Если НЕ Контрагент.Ссылка = Справочники.Контрагенты.ПустаяСсылка Тогда
    НовДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
    НовДоговор.Организация		   = Справочники.Организации.НайтиПоКоду("000000001"); // Основная организация
    НовДоговор.ВалютаВзаиморасчетов  = Справочники.Валюты.НайтиПоКоду("643"); // рубли
    НовДоговор.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом;
    НовДоговор.ВидДоговора		   = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
    НовДоговор.Владелец			  = Контрагент.Ссылка;
    НовДоговор.Наименование		  = "Основной Договор";
    НовДоговор.УстановитьНовыйКод(); // в скобках префикс см. синтаксис помощник
    
    Попытка
    НовДоговор.записать();
    НовыйОсновнойДоговорУказан = Истина;
    Исключение
    Сообщить(ОписаниеОшибки(),СтатусСообщения.Важное);
    НовыйОсновнойДоговорУказан = Ложь;
    КонецПопытки;
    
    ЭтаФорма.Обновить();
    
  19. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    прикрепите обработку
  20. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    эт обработка

    Вложения:

    • 1.epf
      Размер файла:
      6,8 КБ
      Просмотров:
      47
Похожие темы
  1. Daron777
    Ответов:
    1
    Просмотров:
    1.290
  2. antylopa
    Ответов:
    5
    Просмотров:
    520
Загрузка...

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