Имя: Пароль:
1C
1С v8
Создание договора в 1с 8.2
,
0 AnisaL
 
29.11.13
07:37
Доброе утро!
Пытаюсь создать программно договор.
        НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
            НовыйДоговор.УстановитьНовыйКод();
            НовыйДоговор.ДатаДоговора = ТЗ[0].ДатаЗаключения;
            НовыйДоговор.НомерДоговора = ТЗ[0].ЛицевойСчет;
            НовыйДоговор.Наименование = "Договор №" + ТЗ[0].ЛицевойСчет;
            НовыйДоговор.Организация = Организация;
            НовыйКонтрагент = Справочники.Контрагенты.НайтиПоНаименованию(ТЗ[0].ФИО);
            НовыйДоговор.Владелец  = НовыйКонтрагент;
            НовыйДоговор.Записать();        
Выдается ошибка:
{Обработка.ЗагрузкаДанныхИзБиллинга.Форма.Форма.Форма(129)}: Ошибка при вызове метода контекста (Записать)
            НовыйДоговор.Записать();        
по причине:
Значение поля "Контрагент" не заполнено или заполнено неверно
1 AnisaL
 
29.11.13
07:38
(0) Никак не могу понять в чем ошибка, если поля контрагент у Договора вообще нет
2 Wobland
 
29.11.13
07:39
не доверяешь платформе?
3 Wobland
 
29.11.13
07:40
у тебя внутри Записать() где-то ошибка. ищи
4 AnisaL
 
29.11.13
07:41
(2) Платформа 8.3.4.304
5 OnCheck
 
29.11.13
07:41
НовыйДоговор.Контрагент = НовыйКонтрагент;
6 AnisaL
 
29.11.13
07:41
(3) искала(( никак не найду..
7 AnisaL
 
29.11.13
07:42
(5) так писала - выдается ошибка: Поле контрагент не найдено
8 OnCheck
 
29.11.13
07:42
Отладчик + Остановка по ошибке, смотри у какого объекта поле не заполнено
9 OnCheck
 
29.11.13
07:43
Справочники.Контрагенты.НайтиПоНаименованию(ТЗ[0].ФИО) - вот здесь находит кого нить?
10 Oleg_ka
 
29.11.13
07:43
НовыйКонтрагент = Справочники.Контрагенты.НайтиПоНаименованию(ТЗ[0].ФИО);
Если НовыйКонтрагент = Справочники.Контрагенты.ПустаяСсылка() Тогда
Сообщить("Могу ли я? Гамно ли я? Монглоия? А-а-а-а...Магнолия!");
КонецЕсли;
11 Wobland
 
29.11.13
07:45
Попытка
  НаборЗаписей.Записать();
  Возврат Истина;
Исключение
  Сообщить(ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
  Возврат Ложь;
КонецПопытки;
[26.11.2013 8:59:52] Ошибка при вызове метода контекста (Записать) выдается в сообщении об ошибке
[26.11.2013 9:00:09] wobland: у тебя в модуле НЗ присвоение идёт
[26.11.2013 9:00:22] wobland: ну или где там.. не в этом коде, короче
[26.11.2013 9:00:31] хм. спасибо, посмотрю
[26.11.2013 9:02:17] но отладчик по ошибке то валится именно на этой строке
[26.11.2013 9:03:50] wobland: ф10?
[26.11.2013 9:03:59] wobland: остановку по ошибке включи
[26.11.2013 9:04:16] wobland: ошибка где-то внутри Записать()
[26.11.2013 9:05:12] дык остановка по ошибке и приводит меня на эту строку
[26.11.2013 9:05:46] гы
[26.11.2013 9:06:02] wobland: ну замер тогда
[26.11.2013 9:30:08] кхм
[26.11.2013 9:30:13] это типовая УТ
[26.11.2013 9:30:28] я не очень поняла, в чем трудоность, честно говоря
[26.11.2013 9:31:52] я как бы предполагала, что остановка по ошибке меня отправит на конкретную строку в модуле, где ошибка, но она валится именно на НаборЗаписей.Записать()
[26.11.2013 9:32:11] wobland: замер
[26.11.2013 9:35:01] таки придется разбираться(
[26.11.2013 9:36:24] хорошо, скажи мне, пожалуйста, как мне поможет замер? вот вывалил он мне кучу разных строк, а дальше?
[26.11.2013 9:40:57] wobland: прям кучу? оно сортируется по порядку исполнения? вроде нет
[26.11.2013 9:41:07] wobland: ищи равно
[26.11.2013 9:41:51] ясно, поняла
[26.11.2013 9:41:57] wobland: на всякий случай.. остановку по ошибке, запуск. остановка сработала, включила замер, увидела ошибку, выключила замер
[26.11.2013 9:44:25] ну я вроде так и сделала
[26.11.2013 9:44:33] ошибку не увидела. Может не там смотрела
[26.11.2013 9:46:29] wobland: ф11 в конце концов
[26.11.2013 9:46:42] wobland: ну или дай замер глянуть
[26.11.2013 9:47:47] да не злись ты
[26.11.2013 9:47:51] сама найду
12 OnCheck
 
29.11.13
07:48
:-) Может, подписка на событие?
13 AnisaL
 
29.11.13
07:50
(10) дело не в этом, проверка стояла, а ошибка такая же выдавалсь
14 Oleg_ka
 
29.11.13
07:58
НовыйКонтрагент = Справочники.Контрагенты.НайтиПоНаименованию(ТЗ[0].ФИО);
Если НовыйКонтрагент = Справочники.Контрагенты.ПустаяСсылка() Тогда
Сообщить("Контрагент не найден... потому что гладиолус");
Иначе
НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
            НовыйДоговор.УстановитьНовыйКод();
            НовыйДоговор.ДатаДоговора = ТЗ[0].ДатаЗаключения;
            НовыйДоговор.НомерДоговора = ТЗ[0].ЛицевойСчет;
            НовыйДоговор.Наименование = "Договор №" + ТЗ[0].ЛицевойСчет;
            НовыйДоговор.Организация = Организация;
            НовыйДоговор.Владелец  = НовыйКонтрагент;
//          НовыйДоговор.Контрагент  = НовыйКонтрагент;//?Структура справочника изменена?
            НовыйДоговор.Записать();
КонецЕсли;
15 AnisaL
 
29.11.13
08:06
(14) я так уверенно говорю что контрагент есть в справочнике, потому что он создается перед созданием договора
    Если Справочники.Контрагенты.НайтиПоНаименованию(ТЗ[Индекс].ФИО) = НЕОПРЕДЕЛЕНО Тогда
        НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
        НовыйКонтрагент.Наименование               = ТЗ[Индекс].ФИО;
        НовыйКонтрагент.НаименованиеПолное         = ТЗ[Индекс].ФИО;
        НовыйКонтрагент.ЮрФизЛицо                  = Перечисления.ЮрФизЛицо.ФизЛицо;
        НовыйКонтрагент.УстановитьНовыйКод();
        НовыйКонтрагент.ВестиРасчетыПоДоговорам = Истина;
        НовыйКонтрагент.Записать();
        КонецЕсли;
16 Wobland
 
29.11.13
08:07
(15) а почему Неопределено?
17 AnisaL
 
29.11.13
08:09
(16) а ..да ошибка
18 Defender aka LINN
 
29.11.13
08:09
(15) бугога
19 AnisaL
 
29.11.13
08:13
(18) ха-ха-ха.. а ведь точно ошибка была в этом!
20 AnisaL
 
29.11.13
08:13
Спасибо всем.. оказывается все из-за моей невнимательности
21 Wobland
 
29.11.13
08:14
опять до сотни не дотянули
22 AnisaL
 
29.11.13
08:14
(21) у меня времени нет до сотни тянуть
23 Wobland
 
29.11.13
08:17
(22) ваще-т это можно считать завуалированным комплиментом
24 Dmitry1c
 
29.11.13
08:17
НовыйДоговор.ОбъектВладелец = Контрагент;
25 Dmitry1c
 
29.11.13
08:17
(24) стоп, херню написал
26 catena
 
29.11.13
08:24
(15)Если он создается перед созданием договора, зачем его снова искать?