Замена кода номенклатуры из обработки 1С: Предприятие 8.1 УТ последний релиз
07.04.2009
15:23
#1
"Я хотел бы обработкой отредактировать коды номенклатуры.
Вот фрагмент кода.
НужнаяНоменклатура=справочники.Номенклатура.НайтиПоКоду(КодНоменклатуры);
НужнаяНоменклатура.Код = "3н3н3н3";
Получаю ошибку, что поле объекта не доступно для записи. Подскажите как его сделать доступным для записи."
Вот фрагмент кода.
НужнаяНоменклатура=справочники.Номенклатура.НайтиПоКоду(КодНоменклатуры);
НужнаяНоменклатура.Код = "3н3н3н3";
Получаю ошибку, что поле объекта не доступно для записи. Подскажите как его сделать доступным для записи."
07.04.2009
15:49
#2
"НужнаяНоменклатура=справочники.Номенклатура.НайтиПоКоду(КодНоменклатуры);
Если НужнаяНоменклатура.Пустая() Тогда
Сообщить("Нет номенклатуры с кодом """"" + КодНоменклатуры + """", СтатусСообщения.Внимание);
Возврат;
КонецЕсли;
СпрОбъект = НужнаяНоменклатура.ПолучитьОбъект();
СпрОбъект.Код = "3н3н3н3";
СпрОбъект.Записать();
P.S. Может лучше установить коды готовой обработкой с ИТС?"
Если НужнаяНоменклатура.Пустая() Тогда
Сообщить("Нет номенклатуры с кодом """"" + КодНоменклатуры + """", СтатусСообщения.Внимание);
Возврат;
КонецЕсли;
СпрОбъект = НужнаяНоменклатура.ПолучитьОбъект();
СпрОбъект.Код = "3н3н3н3";
СпрОбъект.Записать();
P.S. Может лучше установить коды готовой обработкой с ИТС?"
07.04.2009
15:53
#3
Спасибо за информацию. В каком выпуске ИТС есть такая обработка? Я посмотрю, может не придется изобретать велосипед.
07.04.2009
19:01
#6
Не знаю как можно при помощи этой обработки решить мою проблему. Дело в том, что я хотел бы в БП поменять коды номенклатуры на коды в УТ. Для этого я выгрузил номенклатуру из УТ в файл. Обработка должна пройти всю таблицу, сравнить с ней справочник в БУ и заменить коды. Как это реализовать при помощи Универсальные подбор и обработка объектов? Или есть еще более подходящее решение для этого?
08.04.2009
09:13
#8
"Думал по наименованию. У нас там повторяющихся наименований не должно быть. Конечно идеально было бы по номеру артикула, но в БП такого реквизита нет.
Поэтому сравниваю так:
НаименованиеНоменклатуры = "Артикул Х"
НужнаяНоменклатура=Справочники.Номенклатура.НайтиПоРеквизиту("ПолноеНаименование",НаименованиеНоменклатуры);
Но и здесь у меня программа ругается. Пишет, что "Неверно указан реквизит", хотя в конфигурации посмотрел. Реквизит называется именно так.
Найти по наименованию, выдает такую же ошибку. Что я делаю неправильно? И возможно ли это решить при помощи вышеупомянутой обработки с ИТС?
"
Поэтому сравниваю так:
НаименованиеНоменклатуры = "Артикул Х"
НужнаяНоменклатура=Справочники.Номенклатура.НайтиПоРеквизиту("ПолноеНаименование",НаименованиеНоменклатуры);
Но и здесь у меня программа ругается. Пишет, что "Неверно указан реквизит", хотя в конфигурации посмотрел. Реквизит называется именно так.
Найти по наименованию, выдает такую же ошибку. Что я делаю неправильно? И возможно ли это решить при помощи вышеупомянутой обработки с ИТС?
"
08.04.2009
09:38
#9
Обработка с ИТС Вам в этом случае не поможет.
Не понял про артикул. Он у Вас прописан в БП в наименовании? Например в УТ (код, артикул, наименование) "0001" - "123" - "Товар №1", а в БП "Б001" - "123 Товар №1", так что ли?
В любом случае поиск элементов при сравнении по строке нужно делать через запрос с использованием условия "ПОДОБНО". В случае, если в выборку запроса попадает несколько значений, то выдавать предупреждение о неоднозначном соответствии товара из УТ к товарам в БП.
И что делать с группами номенклатуры, им тоже будете изменять значение кода?
Не понял про артикул. Он у Вас прописан в БП в наименовании? Например в УТ (код, артикул, наименование) "0001" - "123" - "Товар №1", а в БП "Б001" - "123 Товар №1", так что ли?
В любом случае поиск элементов при сравнении по строке нужно делать через запрос с использованием условия "ПОДОБНО". В случае, если в выборку запроса попадает несколько значений, то выдавать предупреждение о неоднозначном соответствии товара из УТ к товарам в БП.
И что делать с группами номенклатуры, им тоже будете изменять значение кода?
Читают тему
(гостей: 1)