Создание элементов в справочнике Контрагенты в БГУ

1. AleksandrLeshkov 02.08.21 16:49 Сейчас в теме
Добрый день! Пытаюсь создать новых контрагентов в типовой конфигурации БГУ, но выдаёт ошибку. В самописной создаётся без проблем, здесь ругается.
Вот код
СК = Справочники.Контрагенты.СоздатьЭлемент();
	СК.Наименование = "Петров";
	Ск.Родитель = "Студенты";	
	Ск.ЮридическоеФизическоеЛицо = Справочники.ТипыКонтрагентов.НайтиПоНаименованию("7 - Физическое лицо"); 
	ск.Записать();


Возникает следующая ошибка:
{Справочник.Контрагенты.МодульОбъекта(57)}: Значение не является значением объектного типа (Пустая)
ск.Записать();

по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{Справочник.Контрагенты.МодульОбъекта(57)}: Значение не является значением объектного типа (Пустая)

{Справочник.Контрагенты.МодульОбъекта(57)}: Значение не является значением объектного типа (Пустая)
Если (ЭтоНовый() И ЮридическоеФизическоеЛицо.Пустая())

Не могу понять как выкрутиться, уже пробовал указать Тип контрагента (обязательное поле) но ошибка всё равно возникает, подскажите, пожалуйста, как сделать правильно
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
3. Dимыч 02.08.21 17:09 Сейчас в теме +0.3 $m
	СК = Справочники.Контрагенты.СоздатьЭлемент();
	СК.Наименование = "Петров";
	Ск.Родитель = Справочники.Контрагенты.НайтиПоНаименованию("Студенты");  
	Ск.ВидКонтрагента = Перечисления.ЮрФизЛицо.ФизЛицо;
	Ск.ТипКонтрагента = Справочники.ТипыКонтрагентов.НайтиПоКоду("7"); 
	Ск.ЮридическоеФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию("Петров");
	ск.Записать();

Показать
AleksandrLeshkov; +1 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. o.nikolaev 211 02.08.21 17:00 Сейчас в теме
Код обработчика события "ПередЗаписью" из модуля объекта справочника покажите здесь.
4. AleksandrLeshkov 02.08.21 17:14 Сейчас в теме
(2)
ФормаФизическогоЛица = Неопределено;
	
	Если ЭтоФизическоеЛицо Тогда
		
		Если НЕ ПустаяСтрока(ДокументыФизическихЛиц.ВидДокумента) И НЕ ЗначениеЗаполнено(ДокументыФизическихЛиц.Период) Тогда
			ТекстСообщения = НСтр("ru='Не заполнена дата начала действия сведений о документе удостоверяющем личность'");
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,,"ДокументыФизическихЛиц.Период",,Отказ);
			Возврат;
		КонецЕсли;
		
		// ФИО	
		ОбщегоНазначенияБГУКлиент.УстановитьРежимИзмененияРегистра(ЭтотОбъект, "ФИОФизическихЛиц");
		
		// гражданство
		ОбщегоНазначенияБГУКлиент.УстановитьРежимИзмененияРегистра(ЭтотОбъект, "ГражданствоФизическихЛиц");
		
		// документ удостоверяющий личность
		ОбщегоНазначенияБГУКлиент.УстановитьРежимИзмененияРегистра(ЭтотОбъект, "ДокументыФизическихЛиц");
		
	КонецЕсли;
	
	ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина, "ЗаписьКонтрагенты");
	
Показать
5. o.nikolaev 211 02.08.21 17:16 Сейчас в теме
(4) Что-то не то вы выложили.
7. AleksandrLeshkov 02.08.21 17:17 Сейчас в теме
(5)
Процедура ПередЗаписью(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);	
	
	Если НЕ ЭтоГруппа Тогда
		
		Если (ВидКонтрагента = ПредопределенноеЗначение("Перечисление.ЮрФизЛицо.ЮрЛицо") И ТипЗнч(ЮридическоеФизическоеЛицо) = Тип("СправочникСсылка.ФизическиеЛица"))
			ИЛИ (ВидКонтрагента = ПредопределенноеЗначение("Перечисление.ЮрФизЛицо.ФизЛицо") И ТипЗнч(ЮридическоеФизическоеЛицо) = Тип("СправочникСсылка.ЮридическиеЛица")) Тогда
			
			Отказ = Истина;
			
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Вид контрагента не соответствует заполненным данным.'"), ЭтотОбъект);
			
		КонецЕсли;
		
		// Если контрагент был скопирован, а ЮрФизЛицо очищено, то нужно очистить ИНН и КПП.
		// Если контрагент не новый, а ЮрФизЛицо не существует в базе, то ИНН и КПП нужно очистить.
		Если (ЭтоНовый() И ЮридическоеФизическоеЛицо.Пустая())
			ИЛИ (НЕ ЭтоНовый() И НЕ ОбщегоНазначения.СсылкаСуществует(ЮридическоеФизическоеЛицо)) Тогда
			
			ИНН = "";
			КПП = "";
			КонтактнаяИнформация.Очистить();
			КППИстория.Очистить();
			
		КонецЕсли;
		
	КонецЕсли;
Показать


Извините, перепутал
8. o.nikolaev 211 02.08.21 17:19 Сейчас в теме
(7)
ЮридическоеФизическоеЛицо
у вас при создании неверный тип этого поля.
AleksandrLeshkov; +1 Ответить
3. Dимыч 02.08.21 17:09 Сейчас в теме +0.3 $m
	СК = Справочники.Контрагенты.СоздатьЭлемент();
	СК.Наименование = "Петров";
	Ск.Родитель = Справочники.Контрагенты.НайтиПоНаименованию("Студенты");  
	Ск.ВидКонтрагента = Перечисления.ЮрФизЛицо.ФизЛицо;
	Ск.ТипКонтрагента = Справочники.ТипыКонтрагентов.НайтиПоКоду("7"); 
	Ск.ЮридическоеФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию("Петров");
	ск.Записать();

Показать
AleksandrLeshkov; +1 Ответить
6. AleksandrLeshkov 02.08.21 17:16 Сейчас в теме
(3)Спасибо, сработало. Думал, что если новый элемент заводить, но НайтиПоНаименованию не надо использовать
9. Sashares 34 02.08.21 17:29 Сейчас в теме
(6)Либо вы заполняете реквизиты контрагента существующими значениями справочника Физ.лица, тогда как-то ищете нужный элемент в справочнике, либо создавайте новый элемент.
AleksandrLeshkov; +1 Ответить
10. AleksandrLeshkov 03.08.21 04:09 Сейчас в теме
(9)Да делаю обработку для загрузки из файла excel, как прочитать его уже научился, вот осталось только справочник заполнить с контрагентами
11. AleksandrLeshkov 03.08.21 04:11 Сейчас в теме
(9)А как правильнее делать, сначала физ. лица загружать а потом создавать из них контрагентов или сразу контрагентов создавать? Вроде из контрагента сразу физ лицо и создаётся
12. Sashares 34 03.08.21 12:55 Сейчас в теме
(11)Перед записью контрагента, у вас уже должен быть элемент справочник Юридические лица или Физические лица для этого контрагента, чтобы заполнить соответствующий реквизит контрагента.
Как именно и в каком порядке вы будете грузить данные - зависит от данных и реализации.
У физ.лиц как и у юр. лиц в справочниках не мало так реквизитов, и если в файле есть данные, их соответственно тоже надо заполнять.
AleksandrLeshkov; +1 Ответить
13. AleksandrLeshkov 04.08.21 05:44 Сейчас в теме
(12) Спасибо, данные есть эти все из другой конфигурации выгруженные, так что сначала загружу в ФЛ, потом контрагентов на их основании создам группой
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день