Номенклатуры 1С: УНФ 1.6 Обязательные поля

1. user765762 26.07.23 07:45 Сейчас в теме
Добрый день знатокам. кто может подсказать сам самоучка новичок делаю себе обработку для заполнения номенклатуры,
Подскажите какие поля обязательно заполнять
Процедура ДобавитьТовар (Параметр1, Параметр2, Параметр3);
	
	НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
	НовыйЭлемент.Артикул = Параметр1;
	НовыйЭлемент.Наименование = Параметр2;
	НовыйЭлемент.НаименованиеПолное =Параметр3;
	НовыйЭлемент.Родитель = Справочники.Номенклатура.НайтиПоНаименованию("товар") ;
	НовыйЭлемент.БазоваяЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
	НовыйЭлемент.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
	НовыйЭлемент.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Прочее");
	НовыйЭлемент.Записать();	
	Сообщить("Товар тобавлен");
	
КонецПроцедуры

 Процедура ДобавитьШтрихкод(Параметр1,Параметр2); 
         
ЗаписьРегистра = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
ЗаписьРегистра.Владелец = Справочники.Номенклатура.НайтиПоНаименованию(Параметр1);
ЗаписьРегистра.ШтрихКод = Параметр2;
ЗаписьРегистра.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
ЗаписьРегистра.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт") ;
ЗаписьРегистра.Качество = Справочники.Качество.НайтиПоНаименованию("Новый");
ЗаписьРегистра.Записать();

 
КонецПроцедуры

&НаСервере
Процедура Команда1НаСервере()
	Соединение = Новый HTTPСоединение(
        "***.**", // сервер (хост)
        443, // порт, по умолчанию для http используется 80, для https 443
       Новый ЗащищенноеСоединениеOpenSSL()
    );
	// Получаем текст корневой страницы через GET-запрос.
    Запрос = Новый HTTPЗапрос("/api/**********&article="+ЭтотОбъект.Объект.ПолеАртикул+"&additional_fields=barcode");
    Результат = Соединение.Получить(Запрос);
   	
	ЧтениеJSON = Новый ЧтениеJSON();
	ЧтениеJSON.ОткрытьПоток(Результат.ПолучитьТелоКакПоток());
	Товар = ПрочитатьJSON(ЧтениеJSON);
	ЧтениеJSON.Закрыть();
	Для Каждого Товар из Товар Цикл 
		Артикул = ЭтотОбъект.Объект.ПолеАртикул;
		Наимено = Товар.name;
		Полаим = Товар.full_name;
		Штрих = Товар.barcode;
	КонецЦикла;
	
	ТекСпр = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Артикул);
		Если ТекСпр.Пустая() Тогда  
		        ДобавитьТовар(Артикул,Наимено,Полаим);
		        ДобавитьШтрихкод(Наимено,Штрих);
		        Сообщить("Товар добавлен в базу");
		     Иначе Сообщить("Товар есть вбазе");
		КонецЕсли;
	


Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. TimoninD 26.07.23 08:48 Сейчас в теме
Добрый день! Такое решается опытным путем. Для начала проверте свойства реквизитов справочника, там есть проверка заполнения. Далее в событии "ОбработкаПроверкиЗаполнения". Если открыть созданный элемент справочника и записать повторно, то должно быть все хорошо (либо укажет на недостающий реквизит).

P.S. Если начинаете в программировании, то почитайте стандарты разработки. Научитесь красиво писать код и нормально называть переменные. Не буду комментировать логику сего шедевра. Удачи в развитии!
user765762; karamazoff; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот