почему не суммируется при загрузки обработкой загружаемый товар с уже загруженным в 1с предприятие?

1. user1093449 20.02.19 11:21 Сейчас в теме
почему не суммируется при загрузки обработкой загружаемый товар с уже загруженным в 1с предприятие?

прилагаю обработку


&НаСервере
Функция ПолучитьНоменклатуру(СтрокаТекст)
 
Запрос = Новый Запрос;
Артикул = СтрокаТекст.Артикул;
Наименование = СтрокаТекст.Наименование;
 
Запрос.УстановитьПараметр("Артикул", Артикул); 
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Артикул = &Артикул
| И НЕ Номенклатура.ПометкаУдаления";
 
Выборка = Запрос.Выполнить().Выбрать();
 
//Если Выборка.Следующий() тогда
 
//НоменклатураСсылка = Выборка.Ссылка;
 
//Иначе 
 
РодительСсылка = ГруппаНоменклатуры;
 
// Производитель
ТекстПроизводитель = СокрЛП(СтрокаТекст.Производитель);
Если ЗначениеЗаполнено(ТекстПроизводитель) тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Наименование", ТекстПроизводитель);
Запрос.УстановитьПараметр("Владелец", ХарактеристикаПроизводитель);
Запрос.Текст = "ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Ссылка
|ИЗ
| Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Наименование = &Наименование
| И ЗначенияСвойствОбъектов.Владелец = &Владелец";
 
ВыборкаПроизводитель = Запрос.Выполнить().Выбрать();
Если ВыборкаПроизводитель.Следующий() тогда
ПроизводительСсылка = ВыборкаПроизводитель.Ссылка;
Иначе
ПроизводительОбъект = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
ПроизводительОбъект.Владелец = ХарактеристикаПроизводитель;
ПроизводительОбъект.Наименование = ТекстПроизводитель;
Попытка
ПроизводительОбъект.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки; 
ПроизводительСсылка = ПроизводительОбъект.Ссылка;
КонецЕсли;
Иначе
ПроизводительСсылка = Справочники.ЗначенияСвойствОбъектов.ПустаяСсылка();
КонецЕсли; 
 
НоменклатураОбъект = Справочники.Номенклатура.СоздатьЭлемент();
НоменклатураОбъект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
НоменклатураОбъект.ВидНоменклатуры = ВидНоменклатуры;
НоменклатураОбъект.Качество = Перечисления.ГрадацииКачества.Новый;
НоменклатураОбъект.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
 
ЗаполнитьЗначенияСвойств(НоменклатураОбъект, ВидНоменклатуры, , "Ссылка, Владелец, ПометкаУдаления, ВерсияДанных, Предопределенный, ЭтоГруппа, Родитель, Описание, Наименование, Код, ИмяПредопределенныхДанных");
 
Если ИспользоватьУпаковки тогда
НоменклатураОбъект.ИспользоватьУпаковки = ИспользоватьУпаковки;
НоменклатураОбъект.НаборУпаковок = НаборУпаковок;
НоменклатураОбъект.ЕдиницаИзмерения = НаборУпаковок.ЕдиницаИзмерения;
КонецЕсли; 
 
ГруппаДоступаНоменклатурыДляКонтроля = ВидНоменклатуры.ГруппаДоступа;
ШаблонНаименованияДляПечати = ВидНоменклатуры.ШаблонНаименованияДляПечатиНоменклатуры;
ШаблонРабочегоНаименования = ВидНоменклатуры.ШаблонРабочегоНаименованияНоменклатуры;
ЗапретРедактированияНаименованияДляПечати = ВидНоменклатуры.ЗапретРедактированияНаименованияНоменклатурыДляПечати;
ЗапретРедактированияРабочегоНаименования = ВидНоменклатуры.ЗапретРедактированияРабочегоНаименованияНоменклатуры;
НаборСвойств = ВидНоменклатуры.НаборСвойств;
ИспользоватьХарактеристики = ВидНоменклатуры.ИспользоватьХарактеристики; 
ЭтоНабор = Ложь;
ВидСодержитДрагоценныеМатериалы = Ложь;
 
НоменклатураОбъект.Наименование = Наименование;
НоменклатураОбъект.НаименованиеПолное = Наименование;
НоменклатураОбъект.Артикул = Артикул;
НоменклатураОбъект.Родитель = РодительСсылка;
 
ЗаписьПроизводитель = НоменклатураОбъект.ДополнительныеРеквизиты.Добавить();
ЗаписьПроизводитель.Значение = ПроизводительСсылка;
ЗаписьПроизводитель.Свойство = ХарактеристикаПроизводитель;
 
Попытка
НоменклатураОбъект.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки; 
НоменклатураСсылка = НоменклатураОбъект.Ссылка;
 
//КонецЕсли; 
 
Возврат НоменклатураСсылка;
 
КонецФункции
Показать







прилагаю полный текст обработки
https://yadi.sk/i/ElPTXFFlA05M-g
https://yadi.sk/d/DCoitpQO-bw_jg
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. oleg-x 27 20.02.19 11:41 Сейчас в теме
(1) Выложили функцию создания номенклатуры, по ссылкам не смотрел. И что вы хотите суммировать?
alex-l19041; +1 Ответить
4. Release 20.02.19 17:52 Сейчас в теме
(1) Хотя бы потому, что в приведенном вами коде функции ПолучитьНоменклатуру, всегда создается новая запись в справочнике номенклатуры:
//Если Выборка.Следующий() тогда
 
//НоменклатураСсылка = Выборка.Ссылка;
 
//Иначе
...
//КонецЕсли;
3. user1093449 20.02.19 17:35 Сейчас в теме
суммировать товары с одним и тем же артиклем
5. oleg-x 27 21.02.19 10:25 Сейчас в теме
(3) Это называется не суммирование, а не создавать объекты (в вашем случае номенклатура), если они уже есть в базе.
Но как и написали выше, Вы просто закомментировали (может конечно и не Вы) условие по которому если номенклатура найдена, то не создавать новый объект.
Оставьте свое сообщение

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