M_Volkov
Gold Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору LaCastet Код: НеЗамещатьОбъектПриЗагрузке = Параметры.НеЗамещатьОбъектПриЗагрузке; НеСоздаватьЕслиНеНайден = Параметры.НеСоздаватьЕслиНеНайден ; Если Не ЗначениеЗаполнено(Объект.Родитель) Или ПустаяСтрока(Объект.Родитель.Наименование) Тогда Если Справочники.Номенклатура.НайтиПоНаименованию("Альфа-Авто").Пустая() Тогда НоменклатураГруппа = Справочники.Номенклатура.СоздатьГруппу(); НоменклатураГруппа.Код = "Альфа-Авто"; НоменклатураГруппа.Наименование = "Альфа-Авто"; НоменклатураГруппа.Записать(); КонецЕсли; Объект.Родитель = Справочники.Номенклатура.НайтиПоНаименованию("Альфа-Авто"); КонецЕсли; ОбъектНеНайден = Не ОбъектНайден; НайденнаЕдиница = Истина; Если Не Объект.ЭтоГруппа Тогда Если Не ЗначениеЗаполнено(Объект.ЕдиницаХраненияОстатков) Тогда Если ОбъектНайден И ЗначениеЗаполнено(Объект.Ссылка.ЕдиницаХраненияОстатков) Тогда Объект.ЕдиницаХраненияОстатков = Объект.Ссылка.ЕдиницаХраненияОстатков; ИначеЕсли Не ЗначениеЗаполнено(Объект.БазоваяЕдиницаИзмерения) Тогда Сообщить("Не заполнена базовая единица измерения номенклатуры: '" + СокрЛП(Объект.Наименование) + "'", СтатусСообщения.Внимание); Иначе Если ОбъектНеНайден Тогда Попытка Объект.Записать(); Исключение Сообщить("Не удалось предварительно записать номенклатуру '" + СокрЛП(Объект.Наименование) + "' для записи ед.хранения остатков " + СокрЛП(Объект.БазоваяЕдиницаИзмерения) + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); КонецПопытки; КонецЕсли; НайденнаяЕдиница = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(Объект.БазоваяЕдиницаИзмерения.Наименование,,,Объект.Ссылка); Если НайденнаяЕдиница.Пустая() тогда НайденнаЕдиница = Ложь; НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НайденнаяЕдиницаОбъект.Наименование = Объект.БазоваяЕдиницаИзмерения.Наименование; НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = Объект.БазоваяЕдиницаИзмерения; НайденнаяЕдиницаОбъект.Коэффициент = 1; НайденнаяЕдиницаОбъект.Владелец = Объект.Ссылка; Попытка НайденнаяЕдиницаОбъект.Записать(); Исключение Сообщить("Не удалось записать ед. хранения остатков '" + СокрЛП(Объект.БазоваяЕдиницаИзмерения.Наименование) + "' для: '" + СокрЛП(Объект) + "'" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); КонецПопытки; НайденнаяЕдиница = НайденнаяЕдиницаОбъект.Ссылка; КонецЕсли; Объект.ЕдиницаХраненияОстатков = НайденнаяЕдиница; КонецЕсли; КонецЕсли; Объект.ЕдиницаДляОтчетов = Объект.ЕдиницаХраненияОстатков; Объект.ЕдиницаИзмеренияМест = Объект.ЕдиницаХраненияОстатков; //+МВ 29.06.2020 Даже "Не запоминать выгруженные объекты" не помогает!? Восстановил передачу ЕдиницаХраненияОстатков. // Если ЗначениеЗаполнено(Объект.ЕдиницаХраненияОстатков) Тогда // Сообщить(?(НайденнаЕдиница, "Н", "Не н") + "айдена " + "единица хранения остатков: " + СокрЛП(Объект.ЕдиницаХраненияОстатков) + "/" + СокрЛП(Объект.ЕдиницаДляОтчетов) + "/" + СокрЛП(Объект.ЕдиницаИзмеренияМест) + " для: " + СокрЛП(Объект.ЕдиницаХраненияОстатков.Владелец), СтатусСообщения.Информация); // Иначе // Сообщить("Не ЗначениеЗаполнено ЕдиницаХраненияОстатков", СтатусСообщения.Внимание); // КонецЕсли; Иначе Отказ = (Не ОбъектНайден И Объект.ПометкаУдаления) Или ПустаяСтрока(Объект.Наименование); //+МВ Если Не Отказ И Параметры.Комментировать Тогда Сообщить(?(ОбъектНайден, "Обновлена", "Создана") + " группа: " + СокрЛП(Объект) + "/" + СокрЛП(Объект.Родитель) + " с кодом: " + СокрЛП(Объект.Код), СтатусСообщения.Информация); КонецЕсли; КонецЕсли; Если Параметры.Комментировать И (ОбъектНеНайден Или (ОбъектНайден И (СокрЛП(Объект.Код) <> СокрЛП(Объект.Ссылка.Код) Или СокрЛП(Объект.Артикул) <> СокрЛП(Объект.Ссылка.Артикул)))) Тогда Сообщить(?(ОбъектНеНайден, "Загруж", "Обновл") + "ена " + ?(Объект.ЭтоГруппа, "группа", "номенклатура") + ": '" + СокрЛП(Объект) + "' с кодом: " + СокрЛП(Объект.Код) + ?(СокрЛП(Объект.Код) = СокрЛП(Объект.Ссылка.Код), "", ?(ПустаяСтрока(Объект.Ссылка.Код), "", "/" + СокрЛП(Объект.Ссылка.Код))) + " с артикулом: " + СокрЛП(Объект.Артикул) + ?(СокрЛП(Объект.Артикул) = СокрЛП(Объект.Ссылка.Артикул), "", ?(ПустаяСтрока(Объект.Ссылка.Артикул), "", "/" + СокрЛП(Объект.Ссылка.Артикул))) + ?(ОбъектНайден, " " + Объект.Ссылка.УникальныйИдентификатор(), ""), СтатусСообщения.Информация); КонецЕсли; | Замечу, что до вчерашнего дня ПКС: ОсновнаяЕдиницаИзмерения - ЕдиницаХраненияОстатков было отключено, и при 1-й загрузке новой номенклатуры ЕдиницаХраненияОстатков почему-то оставалась пустой (если она встречалась только в одном документе). Теперь после ее включения большая часть этого кода более не нужна. Но появилась новая беда... |