Фомирование штрихкода и запись в номенклатуру
Возникла ошибка при попытке обратиться к функции в форме обработки
"{Обработка.ИмпортЗаказаИзИТ5Новый.Форма.Форма.Форма(519,14)}: Недостаточно фактических параметров (ФормированиеШтрихКода)
ШтрихКод = <<?>>ФормированиеШтрихКода(ШтрихКод); (Проверка: Толстый клиент (обычное приложение))"
Что-то неверно прописал или вообще не так сделал ?
"{Обработка.ИмпортЗаказаИзИТ5Новый.Форма.Форма.Форма(519,14)}: Недостаточно фактических параметров (ФормированиеШтрихКода)
ШтрихКод = <<?>>ФормированиеШтрихКода(ШтрихКод); (Проверка: Толстый клиент (обычное приложение))"
Что-то неверно прописал или вообще не так сделал ?
Функция ФормированиеШтрихКода(ПолучитьТекущиеИзделия, НомерЗаказа, КодДокумента)
Объект.НомерЗаказа = НомерЗаказа;
ИзделияЗаказа = ПолучитьМассивИзделий(КодДокумента);
Для Каждого Изделие Из ИзделияЗаказа Цикл
Штрих = Объект.НомерЗаказа + Изделие.Номер + РаботаСТорговымОборудованием.КонтрольныйСимволEAN();
КонецЦикла;
ШтрихКод = Штрих;
КонецФункции
Показать&НаСервере
Функция ПолучитьНоменклатуру(Имя, _ПолноеНаименование, СписокНоменклатуры, Количество, Площадь, Эскиз, НаименованиеИТ)
Наименование = Имя;
ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоКоду("000000003"); //продукция
Родитель = Справочники.Номенклатура.НайтиПоКоду("00000001889"); //группа продукция
Статус = "Создаю номенклатурную единицу: " + Наименование;
НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"); //основная
Если ЗаказПВХТипИзделия = Справочники.ТипыИзделий.Алюминий Тогда
НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000003");
КонецЕсли;
Если Лев(НаименованиеИТ, 2) = "МП" Тогда
Номен = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеИТ);
Иначе
Номен = Справочники.Номенклатура.НайтиПоНаименованию(Наименование);
КонецЕсли;
Если Номен = Справочники.Номенклатура.ПустаяСсылка() Тогда
Номен = Справочники.Номенклатура.СоздатьЭлемент();
Если Лев(НаименованиеИТ, 2) = "МП" Тогда
Номен.Наименование = НаименованиеИТ;
Номен.НаименованиеПолное = НаименованиеИТ;
Иначе
Если ЗаказПВХТипИзделия = Справочники.ТипыИзделий.Алюминий Тогда
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = "Светопрозрачная конструкция из Алюм" + " №" + Номен.Наименование;
ИначеЕсли ЗаказПВХТипИзделия = Справочники.ТипыИзделий.ОкнаПВХ Тогда
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = "Светопрозрачная конструкция из ПВХ" + " №" + Номен.Наименование;
КонецЕсли;
КонецЕсли;
//Номен.НаименованиеПолное = _ПолноеНаименование;
Номен.НоменклатурнаяГруппа = НоменклатурнаяГруппа;
Номен.НоменклатурнаяГруппаЗатрат = НоменклатурнаяГруппа;
Номен.ВидНоменклатуры = ВидНоменклатуры;
Номен.ВестиУчетПоХарактеристикам = Истина;
Номен.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
Номен.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(796); //шт
Номен.Родитель = Родитель;
Номен.Изделие = Истина;
Номен.Площадь = Площадь;
Номен.НеПодбиратьЦвет = Истина;
Номен.ИзделиеИзПВХ = Истина;
Номен.НаименованиеИТ = НаименованиеИТ;
Номен.Записать();
Иначе
Номен = Номен.ПолучитьОбъект();
Номен.Наименование = Номен.Наименование;
Номен.НаименованиеПолное = Номен.НаименованиеПолное;
Номен.НоменклатурнаяГруппа = НоменклатурнаяГруппа;
Номен.НоменклатурнаяГруппаЗатрат = НоменклатурнаяГруппа;
Номен.НеПодбиратьЦвет = Истина;
Номен.НаименованиеИТ = НаименованиеИТ;
Номен.Записать();
КонецЕсли;
ШтрихКод = ФормированиеШтрихКода(ШтрихКод);
СсылкаНаОбъект = Номен.Ссылка;
Рег = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
Рег.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8;
Рег.Владелец = СсылкаНаОбъект.Ссылка;
Рег.Штрихкод = ШтрихКод;
Рег.Качество = Справочники.Качество.Новый;
Рег.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоКоду("ШШ0084287");
Рег.Записать();
ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.Выбрать(,Номен.Ссылка);
Если ЕдиницаИзмерения.Следующий() Тогда
Номен.ЕдиницаХраненияОстатков = ЕдиницаИзмерения.Ссылка;
Иначе
ЕдиницаХраненияОстатков = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
ЕдиницаХраненияОстатков.Наименование = Номен.БазоваяЕдиницаИзмерения.Наименование;
ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору = Номен.БазоваяЕдиницаИзмерения;
ЕдиницаХраненияОстатков.Коэффициент = 1;
ЕдиницаХраненияОстатков.Владелец = Номен.Ссылка;
ЕдиницаХраненияОстатков.Записать();
Номен.ЕдиницаХраненияОстатков = ЕдиницаХраненияОстатков.Ссылка;
Номен.ЕдиницаДляОтчетов = ЕдиницаХраненияОстатков.Ссылка;
КонецЕсли;
Запрос = новый запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Объект = &Объект
| И ЗначенияСвойствОбъектов.Свойство.Наименование = ""Тип комплектующей""";
Запрос.УстановитьПараметр("Объект", Номен.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Значение = "";
Пока Выборка.Следующий() Цикл
Значение = Выборка.Значение;
КонецЦикла;
Если Значение = null Или Значение = "" тогда
зсо = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
зсо.Объект = Номен.Ссылка;
зсо.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00000000014");
зсо.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоКоду("000000136");
зсо.Записать();
КонецЕсли;
Номен.ВидВоспроизводства = Перечисления.ВидыВоспроизводстваНоменклатуры.Производство;
//Если Эскиз <> Неопределено Тогда
// ЭскизОбъект = Эскиз.ПолучитьОбъект();
// ЭскизОбъект.Объект = Номен.Ссылка;
// ЭскизОбъект.Записать();
// Номен.ОсновноеИзображение = Эскиз;
//КонецЕсли;
Номен.Записать();
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
| СпецификацииНоменклатуры.Ссылка
|ИЗ
| Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
|ГДЕ
| СпецификацииНоменклатуры.ВыходныеИзделия.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура", Номен.Ссылка);
Спецификация = Запрос.Выполнить().Выбрать();
Пока Спецификация.Следующий() Цикл
СпецОбъект = Спецификация.Ссылка.ПолучитьОбъект();
СпецОбъект.Активная = Истина;
СпецОбъект.Записать();
КонецЦикла;
//Бердник 17.07.2024
попытка
Если Лев(Номен.НаименованиеИТ, 2) = "МП" Тогда
ЭлементСпецификация = Справочники.Номенклатура.НайтиПоНаименованию(СпецОбъект.Наименование);
КонецЕсли;
исключение
конецпопытки;
//
//Если Спецификация.Следующий() Тогда
// Спецификация = Спецификация.Ссылка.ПолучитьОбъект();
//Иначе
Спецификация = Справочники.СпецификацииНоменклатуры.СоздатьЭлемент();
Спецификация.ВидСпецификации = Перечисления.ВидыСпецификаций.Сборочная;
Спецификация.Наименование = Наименование;
Спецификация.Активная = Истина;
Спецификация.Состояние = Перечисления.СостоянияОбъектов.Утвержден;
Спецификация.ДатаУтверждения = ТекущаяДата();
Спецификация.Ответственный = ПараметрыСеанса.ТекущийПользователь;
ВИ = Спецификация.ВыходныеИзделия.Добавить();
ВИ.Номенклатура = Номен.Ссылка;
ВИ.Количество = 1;
ВИ.ЕдиницаИзмерения = Номен.ЕдиницаХраненияОстатков;
//КонецЕсли;
//Бердник 17.07.2024
//Если Спецификация.Следующий() Тогда
// Спецификация = Спецификация.Ссылка.ПолучитьОбъект();
//Иначе
//КонецЕсли;
//Синицын 06.09.2019 (
СсылкаГруппаПрофильАлнео = Справочники.Номенклатура.НайтиПоКоду("ШТ82358");
СсылкаГруппаПрофильАлютех = Справочники.Номенклатура.НайтиПоКоду("ШТ00454");
//Синицын 06.09.2019 )
Для Каждого НоменклатурнаяЕдиница Из СписокНоменклатуры Цикл
Если Не (Найти(НоменклатурнаяЕдиница.Номенклатура.Артикул, "~~") = 0) Тогда
Продолжить;
КонецЕсли;
Если Не НоменклатурнаяЕдиница.Номенклатура = Неопределено Тогда
Если НоменклатурнаяЕдиница.Номенклатура.Родитель.Наименование <> "Комплектующие монтажа" ИЛИ
ПолучитьСвойствоНоменклатуры(НоменклатурнаяЕдиница.Номенклатура) Тогда
//Бердник 17.07.2024
Если ЗначениеЗаполнено(ЭлементСпецификация) Тогда
Комплектующая = СпецОбъект.ИсходныеКомплектующие.Добавить();
Иначе
Комплектующая = Спецификация.ИсходныеКомплектующие.Добавить();
КонецЕсли;
//Бердник 17.07.2024
Комплектующая.Номенклатура = НоменклатурнаяЕдиница.Номенклатура;
Комплектующая.ХарактеристикаНоменклатуры = НоменклатурнаяЕдиница.Характеристика;
Если Комплектующая.Номенклатура.ВестиУчетПоХарактеристикам И ЗаказПВХТипИзделия = Справочники.ТипыИзделий.Алюминий Тогда
Если (Комплектующая.ХарактеристикаНоменклатуры.Пустая() ИЛИ Комплектующая.ХарактеристикаНоменклатуры = Неопределено)
И (Комплектующая.Номенклатура.Родитель = СсылкаГруппаПрофильАлнео ИЛИ Комплектующая.Номенклатура.Родитель = СсылкаГруппаПрофильАлютех) Тогда
ЗапросХ = новый Запрос;
ЗапросХ.Текст = "ВЫБРАТЬ
| ХарактеристикиНоменклатуры.Ссылка
|ИЗ
| Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
|ГДЕ
| ХарактеристикиНоменклатуры.Владелец = &Владелец
| И НЕ ХарактеристикиНоменклатуры.ПометкаУдаления";
ЗапросХ.УстановитьПараметр("Владелец",Комплектующая.Номенклатура);
ВыборкаХ = ЗапросХ.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Сообщить("В спецификации изделия "+Номен.Ссылка+" для номенклатуры "+Комплектующая.Номенклатура+" не указана характеристика!");
КонецЕсли;
КонецЕсли;
Если Комплектующая.Номенклатура.ПометкаУдаления Тогда
Сообщить("В спецификации изделия "+Номен.Ссылка+" номенклатура "+Комплектующая.Номенклатура+" помечена на удаление!");
КонецЕсли;
Если Комплектующая.ХарактеристикаНоменклатуры.ПометкаУдаления Тогда
Сообщить("В спецификации изделия "+Номен.Ссылка+" для номенклатуры "+Комплектующая.Номенклатура+" характеристика "+Комплектующая.ХарактеристикаНоменклатуры+" помечена на удаление!");
КонецЕсли;
Если Найти(Комплектующая.Номенклатура.Артикул,"!!!") <> 0 Тогда
Сообщить("В спецификации изделия "+Номен.Ссылка+" артикул номенклатуры "+Комплектующая.Номенклатура+" содержит ""!!!""");
КонецЕсли;
Если Найти(Комплектующая.ХарактеристикаНоменклатуры.Наименование,"!!!") <> 0 Тогда
Сообщить("В спецификации изделия "+Номен.Ссылка+" для номенклатуры "+Комплектующая.Номенклатура+" наименование характеристики "+Комплектующая.ХарактеристикаНоменклатуры+" содержит ""!!!""");
КонецЕсли;
КонецЕсли;
Комплектующая.Количество = НоменклатурнаяЕдиница.Количество / Количество;
Комплектующая.ЕдиницаИзмерения = НоменклатурнаяЕдиница.Номенклатура.ЕдиницаХраненияОстатков;
КонецЕсли;
КонецЕсли;
КонецЦикла;
//Бердник 17.07.2024
Если ЗначениеЗаполнено(ЭлементСпецификация) Тогда
СпецОбъект.Записать();
Иначе
Спецификация.Записать();
КонецЕсли;
//Бердник 17.07.2024
ОсновныеСпецификации = РегистрыСведений.ОсновныеСпецификацииНоменклатуры.СоздатьМенеджерЗаписи();
ОсновныеСпецификации.Период = ТекущаяДата();
ОсновныеСпецификации.Номенклатура = Номен.Ссылка;
ОсновныеСпецификации.СпецификацияНоменклатуры = Спецификация.Ссылка;
ОсновныеСпецификации.Записать(Истина);
Возврат Номен.Ссылка;
КонецФункции
ПоказатьОтветы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот