Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 18:34

Почему не грузиться в 1с новый производитель с тем же артикулом? Как изменить обработку что-бы артикул не проверялся а сразу заводился в справочник и суммировался с уже существующим товаром с выставлением последней цены при последней загрузки?

Автор сергей123, 14 фев 2019, 10:35

0 Пользователей и 1 гость просматривают эту тему.

сергей123

Почему не грузиться в 1с новый производитель с тем же артикулом? Как изменить обработку что-бы артикул не проверялся а сразу заводился в справочник и суммировался с уже существующим товаром с выставлением последней цены при последней загрузки?


прилагаю полный текст обработки
https://yadi.sk/i/ElPTXFFlA05M-g
https://yadi.sk/d/DCoitpQO-bw_jg
Код

&НаСервере
Функция ПолучитьНоменклатуру(СтрокаТекст)

Запрос = Новый Запрос;
Артикул = СтрокаТекст.Артикул;
Наименование = СтрокаТекст.Наименование;

Запрос.УстановитьПараметр("Артикул", Артикул);
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Артикул = &Артикул
| И НЕ Номенклатура.ПометкаУдаления";

Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() тогда

НоменклатураСсылка = Выборка.Ссылка;

Иначе

РодительСсылка = ГруппаНоменклатуры;

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

ВыборкаПроизводитель = Запрос.Выполнить().Выбрать();
Если ВыборкаПроизводитель.Следующий() тогда
ПроизводительСсылка = ВыборкаПроизводитель.Ссылка;
Иначе
ПроизводительОбъект = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
ПроизводительОбъект.Владелец = ХарактеристикаПроизводитель;
ПроизводительОбъект.Наименование = ТекстПроизводитель;
Попытка
ПроизводительОбъект.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
ПроизводительСсылка = ПроизводительОбъект.Ссылка;
КонецЕсли;
Иначе
ПроизводительСсылка = Справочники.ЗначенияСвойствОбъектов.ПустаяСсылка();
КонецЕсли;

НоменклатураОбъект = Справочники.Номенклатура.СоздатьЭлемент();
НоменклатураОбъект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
НоменклатураОбъект.ВидНоменклатуры = ВидНоменклатуры;
НоменклатураОбъект.Качество = Перечисления.ГрадацииКачества.Новый;
НоменклатураОбъект.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;

ЗаполнитьЗначенияСвойств(НоменклатураОбъект, ВидНоменклатуры, , "Ссылка, Владелец, ПометкаУдаления, ВерсияДанных, Предопределенный, ЭтоГруппа, Родитель, Описание, Наименование, Код, ИмяПредопределенныхДанных");

Если ИспользоватьУпаковки тогда
НоменклатураОбъект.ИспользоватьУпаковки = ИспользоватьУпаковки;
НоменклатураОбъект.НаборУпаковок = НаборУпаковок;
НоменклатураОбъект.ЕдиницаИзмерения = НаборУпаковок.ЕдиницаИзмерения;
КонецЕсли;

ГруппаДоступаНоменклатурыДляКонтроля = ВидНоменклатуры.ГруппаДоступа;
ШаблонНаименованияДляПечати = ВидНоменклатуры.ШаблонНаименованияДляПечатиНоменклатуры;
ШаблонРабочегоНаименования = ВидНоменклатуры.ШаблонРабочегоНаименованияНоменклатуры;
ЗапретРедактированияНаименованияДляПечати = ВидНоменклатуры.ЗапретРедактированияНаименованияНоменклатурыДляПечати;
ЗапретРедактированияРабочегоНаименования = ВидНоменклатуры.ЗапретРедактированияРабочегоНаименованияНоменклатуры;
НаборСвойств = ВидНоменклатуры.НаборСвойств;
ИспользоватьХарактеристики = ВидНоменклатуры.ИспользоватьХарактеристики;
ЭтоНабор = Ложь;
ВидСодержитДрагоценныеМатериалы = Ложь;

НоменклатураОбъект.Наименование = Наименование;
НоменклатураОбъект.НаименованиеПолное = Наименование;
НоменклатураОбъект.Артикул = Артикул;
НоменклатураОбъект.Родитель = РодительСсылка;

ЗаписьПроизводитель = НоменклатураОбъект.ДополнительныеРеквизиты.Добавить();
ЗаписьПроизводитель.Значение = ПроизводительСсылка;
ЗаписьПроизводитель.Свойство = ХарактеристикаПроизводитель;

Попытка
НоменклатураОбъект.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
НоменклатураСсылка = НоменклатураОбъект.Ссылка;

КонецЕсли;

Возврат НоменклатураСсылка;

КонецФункции


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск