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