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

Не выходит присвоить правильно значение виду номенклатуры

Автор Рексарыч, 19 дек 2014, 14:50

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

Рексарыч

Доброе всем время суток.

Относительно недавно начал обучаться программированию на "1С". Сейчас работаю с "1С: ERP УП 2.0".

Поставлено задание, чтоб поменялся вид номенклатуры у части объектов НСИ.

Вот то, что накодил:


&НаСервере
Процедура УстановитьКоличествоНаСервере()
    //запрос, который вытаскивает из номенклатора те объекты, которые мне нужны
запрос = новый запрос("
|Выбрать
|*
|из
|Справочник.Номенклатура
|где
|Наименование ПОДОБНО &штамповка или Наименование ПОДОБНО &поковка");

запрос.УстановитьПараметр("штамповка", "%"+"штамповк"+"%");
запрос.УстановитьПараметр("поковка", "%"+"поковк"+"%");

Номенклатор = запрос.Выполнить().Выбрать();
//осуществляю пробежку по всем отобранным объектам
Пока Номенклатор.Следующий() Цикл
//смотрю данные, которые были ДО
Сообщить("" + Номенклатор.Наименование + ";" + Номенклатор.ВидНоменклатуры + "");
//печать
сообщить(0);
        //получаю интересующий меня объект в данный момент
Изделие = Номенклатор.Ссылка.ПолучитьОбъект();
//печать
сообщить(1);

        ///////////////////////////////////////////////
//работает с текстовым полем                 //
//Изделие.Наименование = "ШТАМПОВКА ШТК-908";//
///////////////////////////////////////////////
//с этой строчкой как раз проблема, поскольку не хватает знаний, как правильно присвоить значение ВидуНоменклатуры
Изделие.ВидНоменклатуры = Перечисления.ВидНоменклатуры.Полуфабрикат;
//печать
        сообщить(2);
Изделие.Записать();
//смотрю данные, которые стали ПОСЛЕ
Сообщить("" + Изделие.Наименование + ";" + Изделие.ВидНоменклатуры + "");

КонецЦикла;

КонецПроцедуры

&НаКлиенте
Процедура УстановитьКоличество(Команда)

сообщить("Можете выспаться %)");
УстановитьКоличествоНаСервере();

КонецПроцедуры
.

В лучшем случае, если пишу бессмысленное присвоение <<Изделие.ВидНоменклатуры = "1";>>, то вид номенклатуры меняется на пустое значение.

Буду премного благодарен, если подскажете хотя бы то, что должно быть после знака присвоения в строчке <<Изделие.ВидНоменклатуры =>>.

sertak

Виды номенклатуры - это справочник, а не перечисление.
Программно можно получить элемент либо если он предопределенный либо поиском. Для разовой обработки допустимо найти по коду или по наименованию, предварительно убедившись, что в справочнике нет дубликатов.
Например:
//0000000001 - код вида номенклатуры Полуфабрикаты
НужныйВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоКоду("0000000001 ");
ИЛИ
НужныйВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Полуфабрикаты");
Если Не ЗначениеЗаполнено(НужныйВидНоменклатуры) Тогда
    Сообщить("Вид номенклатуры не найден. Обработка невозможна.");
    Возврат;
КонецЕсли
//здесь поиск и перебор номенклатуры
...
Изделие.ВидНоменклатуры = НужныйВидНоменклатуры;
Изделие.ТипНоменклатуры = НужныйВидНоменклатуры.ТипНоменклатуры;
...
//И изучите взаимосвязи объектов, с которыми работаете.

Рексарыч

Спасибо Вам, друг. Всё получилось и заработало :ooifh:.

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск