Группа: Пользователи
Сообщений: 40
Из: Україна
Спасибо сказали: 17 раз
Рейтинг: 9.8
Створив обробку для завантаження звітів про роздрібні продажі, перший раз все ок, при повтрній вгрузці дублюється номенклатура, додаю процедуру, що роблю не правильно вже не можу поняти, дякую всім наперед, впевнений, що світ не без добрих людей
Если Артикул <> "" Тогда НайдАрт = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",АртикулП); Если СокрЛП(НайдАрт)<> "" Тогда Артикул = НайдАрт.Ссылка;
Иначе НовДов = Справочники.Номенклатура.СоздатьЭлемент(); НовДов.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("2009"); // шт
НовДов.Наименование = Номенкл; НовДов.НаименованиеПолное = Номенкл; Если Артикул<>"" Тогда НовДов.Артикул = Артикул; КонецЕсли;
НовДов.СтавкаНДС = СтавкаНоменкл;
Запись = НовДов.ЕдиницыИзмерения.Добавить(); Запись.Коэффициент = 1; Запись.ЕдиницаИзмерения = НовДов.БазоваяЕдиницаИзмерения;
НовДов.Записать();
Возврат НовДов.Ссылка; КонецЕсли; КонецЕсли;
Запит = Новый Запрос; Запит.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенкл, | Номенклатура.Наименование |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ПометкаУдаления = ЛОЖЬ | И Номенклатура.Наименование = &Назва | И Номенклатура.Артикул = &Артикул | И Номенклатура.СтавкаНДС = &СтавкаПДВ";
Запит.УстановитьПараметр("Назва", Номенкл); Запит.УстановитьПараметр("СтавкаПДВ", СтавкаНоменкл); Запит.УстановитьПараметр("Артикул", АртикулП); Виб = Запит.Выполнить().Выбрать(); Если Виб.Следующий() Тогда Если Артикул<>"" И СокрЛП(Виб.Номенкл.Артикул)="" Тогда Об = Виб.Номенкл.ПолучитьОбъект(); Об.Артикул = Артикул; Об.Записать(); КонецЕсли;
Если СтавкаНоменкл <> Виб.Номенкл.СтавкаНДС Тогда Об = Виб.Номенкл.ПолучитьОбъект(); Об.СтавкаНДС = СтавкаНоменкл; Об.Записать(); КонецЕсли;
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(bandrah @ 26.05.21, 23:19)
ртикул був числом, а має бути строка, виправив - все запрацювало коректно
Насправді проблема створення може бути й тут "НайдАрт", бо це не строка а СправочникСсылка, і тут треба використовувати НайдАрт.Пустая() або ЗначениеЗаполнено(НайдАрт)
Личные бесплатные консультации не даю, для этого есть форум!
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!