Помощь - Поиск - Пользователи - Календарь
Полная версия: Добавить договор
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Конфигурирование на платформе "1С:Предприятие 8.x"
OIT
Код
НайденныйДоговор = Справочники.ДоговорыКонтрагентов.Выбрать(,Контрагент,,);
Если НайденныйДоговор.Ссылка.Пустая() Тогда
// не знаю как добавить
КонецЕсли;


Подскажите пожалуйста
Благодарю Вас
lazy
Код
НайденныйДоговор = Справочники.ДоговорыКонтрагентов.Выбрать(,Контрагент,,);
Если НайденныйДоговор.Ссылка.Пустая() Тогда
НайденныйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
НайденныйДоговор.Владелец = Контрагент;
НайденныйДоговор.Наименование = "Мой новосозданный договор";
// ... заполнение прочих реквизитов
Попытка
НайденныйДоговор.Записать();
Исключение
Сообщить("Не удалось записать новый договор! ");
Сообщить(ОписаниеОшибки());
КонецПопытки
КонецЕсли;

Примерно так. Не проверял. Не забывайте про тег CODE в сообщениях форума.
OIT
Большое спасибо
OIT
Выходит сообщение
Значение не является значением объектного типа(Пустая)
Скажите пожалуйста в чем причина
Благодарю Вас
lazy
Потому, что у ссылки нет такого метода ^_^ сразу не обратил внимание :-( должно быть так:

Код
Если НайденныйДоговор.Пустая() Тогда




Либо, нужно сравнивать ссылку с пустой ссылкой данного вида справочника:
Код
Если НайденныйДоговор.Ссылка = Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда 



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


Не добавляется договор в чем же тут дело
Подскажите пожалуйста
Благодарю Вас
lazy
Хотя, впрочем, опять не досмотрел
Код
НайденныйДоговор = Справочники.ДоговорыКонтрагентов.Выбрать(,Сотрудник,,);

Глянул на название переменной НайденныйДоговор, и решил, что он содержит пустую ссылку на договор, хотя это не так.
НайденныйДоговор в данном случае - выборка.
К ней нужно применять метод ".Следующий()"
И только после этого выборка будет возвращать объект после выполнения метода .ПолучитьОбъект().
Т.е. код должен выглядеть так:
Код
Выборка =  Справочники.ДоговорыКонтрагентов.Выбрать(,Сотрудник,,);
НашлиДоговор = Ложь; // Это флаг для определения, нашли ли мы договор.
Пока Выборка.Следующий() Цикл
НашлиДоговор = Истина;
// Здесь Выборка - содержит найденный договор, и нам нужно с ним что-то сделать.
НайденныйДоговор = Выборка.Ссылка;
КонецЦикла;

Если НЕ НашлиДоговор Тогда // А вот тут уже придется его создавать...
НайденныйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
НайденныйДоговор.Владелец = Сотрудник;
НайденныйДоговор.Наименование = "Договор Займа1";
НайденныйДоговор.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоНаименованию("руб.");
НайденныйДоговор.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.Прочее;
НайденныйДоговор.ВидВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом;
Попытка
НайденныйДоговор.Записать();
Исключение
Сообщить("Не удалось записать новый договор! ");
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Не проверял.



OIT
Попытка записи ошибок не выдает
Сообщений нет
Но я захожу в справочник а там пусто
Не пойму почему
Благодарю Вас
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.