Как правильно создавать номенклатуру программно?
созданию номенклатуру программно, беру значения из excel, но вот попросили добавить новые реквезиты и никак не могу их назначить... Как их правильно назначить? Для примера написал какие значения должны бить, а что дальше делать не знаю...
НоваяНомеклатура.Наименование = строка.Наименование;
НоваяНомеклатура.НаименованиеПолное = строка.Наименование;
НоваяНомеклатура.Артикул = строка.Артикул;
НоваяНомеклатура.ЕдиницаИзмерения = ЕдиницыИзмерения;
НоваяНомеклатура.ЕдиницаДляОтчетов = ЕдиницыИзмерения;
НоваяНомеклатура.Производитель = НайтиПроизводителя(строка.Производитель);
НоваяНомеклатура.Родитель = НайтиРодителя(строка.Группа);
НоваяНомеклатура.ВидНоменклатуры = ВидТовара;
///// Вот тут ниже я не знаю дальше как вставить значения...
//Параметры для удачного создания номенклатуры
//НоваяНомеклатура.Качество = "новое";
//НоваяНомеклатура.ГруппаФинансовогоУчета = "Товары";
//НоваяНомеклатура.СтавкаНДС = 18%;
//НоваяНомеклатура.ТипНоменклатуры = "товары";
//НоваяНомеклатура.СхемаОбеспечения = "Основная схема обеспечения (создана при обновлении ИБ)";
//НоваяНомеклатура.РейтингПродаж = "низкий";
ПоказатьПо теме из базы знаний
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Видеокурс-самоучитель "1С:Документооборот 2.1 и 3.0" для самостоятельного внедрения
- Разработка и сценарное тестирование с Vanessa-ADD. Практические примеры сценариев. Шаги встроенной библиотеки
- Молчание "best practices": тестовые и эталонные данные, структура и связность, падения и новая функциональность, и другие неудобные вопросы к сценарному тестированию
- Ликвидация безграмотности по данным
Найденные решения
(1)
НАчнем с простого (у меня УТ11)... открываешь конфигурацию открываешь справочники.Номенклатура и смотришь что в реквизитах
например "Качество"
Качество является ссылкой на перечисление и писать нужно Код
Если ты начнешь писать "перечисления." он тебе начнет подсказывать в 1с конфигураторе
Идем дальше ГруппаФинансовогоУчета является ссылкой на справочник
соответственно справочнике ГруппыФинансовогоУчетаНоменклатуры у тебя должна быть создана запись "Товары"
вообще у тебя в коде есть Функция НайтиПроизводителя();
которая скорее всего ищет производителя в справочнике "производители" и если не находит то создает. можешь по аналогии создать свои функции на справочники ГруппаФинансовогоУчета СхемыОбеспечения РейтингиПродажНоменклатуры
И код в функции примерно такой
///// Вот тут ниже я не знаю дальше как вставить значения...
//Параметры для удачного создания номенклатуры
//НоваяНомеклатура.Качество = "новое";
//НоваяНомеклатура.ГруппаФинансовогоУчета = "Товары";
//НоваяНомеклатура.СтавкаНДС = 18%;
//НоваяНомеклатура.ТипНоменклатуры = "товары";
//НоваяНомеклатура.СхемаОбеспечения = "Основная схема обеспечения (создана при обновлении ИБ)";
//НоваяНомеклатура.РейтингПродаж = "низкий";
//Параметры для удачного создания номенклатуры
//НоваяНомеклатура.Качество = "новое";
//НоваяНомеклатура.ГруппаФинансовогоУчета = "Товары";
//НоваяНомеклатура.СтавкаНДС = 18%;
//НоваяНомеклатура.ТипНоменклатуры = "товары";
//НоваяНомеклатура.СхемаОбеспечения = "Основная схема обеспечения (создана при обновлении ИБ)";
//НоваяНомеклатура.РейтингПродаж = "низкий";
НАчнем с простого (у меня УТ11)... открываешь конфигурацию открываешь справочники.Номенклатура и смотришь что в реквизитах
например "Качество"
Качество является ссылкой на перечисление и писать нужно Код
НоваяНомеклатура.Качество = перечисления.ГрадацииКачества.Новый;
Если ты начнешь писать "перечисления." он тебе начнет подсказывать в 1с конфигураторе
Идем дальше ГруппаФинансовогоУчета является ссылкой на справочник
НоваяНомеклатура.ГруппаФинансовогоУчета = справочники.ГруппыФинансовогоУчетаНоменклатуры.НайтиПоНаименованию("Товары");
соответственно справочнике ГруппыФинансовогоУчетаНоменклатуры у тебя должна быть создана запись "Товары"
НоваяНомеклатура.СтавкаНДС =перечисления.СтавкиНДС.НДС18;
НоваяНомеклатура.ТипНоменклатуры = перечисления.ТипыНоменклатуры.Товар;
НоваяНомеклатура.СхемаОбеспечения = справочники.СхемыОбеспечения.НайтиПоНаименованию("Основная схема обеспечения (создана при обновлении ИБ)");
НоваяНомеклатура.РейтингПродаж = справочники.РейтингиПродажНоменклатуры.НайтиПоНаименованию("низкий");
вообще у тебя в коде есть Функция НайтиПроизводителя();
которая скорее всего ищет производителя в справочнике "производители" и если не находит то создает. можешь по аналогии создать свои функции на справочники ГруппаФинансовогоУчета СхемыОбеспечения РейтингиПродажНоменклатуры
И код в функции примерно такой
функция НайтиПроизводителя(Производитель)
ссылкаНаПроизводителя = Справочники.Производители.НайтиПоНаименованию(Производитель);
Если ссылкаНаПроизводителя = справочники.производители.ПустаяСсылка() тогда
спробъект = справочники.Производители.СоздатьЭлемент();
спробъект.Наименование = Производитель;
// какие-то обязательные реквизиты ещё заполняются;
спробъект.Записать();
возврат спробъект.Ссылка();
иначе
возврат ссылкаНаПроизводителя ;
Конецесли;
Конецфункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент()
НоваяНомеклатура.Наименование = строка.Наименование;
НоваяНомеклатура.НаименованиеПолное = строка.Наименование;
НоваяНомеклатура.Артикул = строка.Артикул;
НоваяНомеклатура.ЕдиницаИзмерения = ЕдиницыИзмерения;
НоваяНомеклатура.ЕдиницаДляОтчетов = ЕдиницыИзмерения;
НоваяНомеклатура.Производитель = НайтиПроизводителя(строка.Производитель);
НоваяНомеклатура.Родитель = НайтиРодителя(строка.Группа);
НоваяНомеклатура.ВидНоменклатуры = ВидТовара;
НоваяНомеклатура.Записать()
Показать
(2) у меня проблема тут, а не в том что я не знаю как записывать((
//Параметры для удачного создания номенклатуры
//НоваяНомеклатура.Качество = "новое";
//НоваяНомеклатура.ГруппаФинансовогоУчета = "Товары";
//НоваяНомеклатура.СтавкаНДС = 18%;
//НоваяНомеклатура.ТипНоменклатуры = "товары";
//НоваяНомеклатура.СхемаОбеспечения = "Основная схема обеспечения (создана при обновлении ИБ)";
//НоваяНомеклатура.РейтингПродаж = "низкий";
(1)у вы должны иметь представление какому реквизиту номенклатуры присвоить данные значение. Качество какой тип имеет? ставка НДС ищется через поиск с в справочнике Справочники.СтавкиНДС.НайтиПоНаименованию("18%) - это как пример, ни знаю как у вас в базе ставки записаны, может отделять числа нужно и искать по реквизиту ставка.
ТипНоменклатуры это скорее всего перечисление нужно подставлять "ТипыНоменклатуры" или "ВидыНоменклатуры", Перечисления.ТипыНоменклатуры["Товары"]
ТипНоменклатуры это скорее всего перечисление нужно подставлять "ТипыНоменклатуры" или "ВидыНоменклатуры", Перечисления.ТипыНоменклатуры["Товары"]
(1)
НАчнем с простого (у меня УТ11)... открываешь конфигурацию открываешь справочники.Номенклатура и смотришь что в реквизитах
например "Качество"
Качество является ссылкой на перечисление и писать нужно Код
Если ты начнешь писать "перечисления." он тебе начнет подсказывать в 1с конфигураторе
Идем дальше ГруппаФинансовогоУчета является ссылкой на справочник
соответственно справочнике ГруппыФинансовогоУчетаНоменклатуры у тебя должна быть создана запись "Товары"
вообще у тебя в коде есть Функция НайтиПроизводителя();
которая скорее всего ищет производителя в справочнике "производители" и если не находит то создает. можешь по аналогии создать свои функции на справочники ГруппаФинансовогоУчета СхемыОбеспечения РейтингиПродажНоменклатуры
И код в функции примерно такой
///// Вот тут ниже я не знаю дальше как вставить значения...
//Параметры для удачного создания номенклатуры
//НоваяНомеклатура.Качество = "новое";
//НоваяНомеклатура.ГруппаФинансовогоУчета = "Товары";
//НоваяНомеклатура.СтавкаНДС = 18%;
//НоваяНомеклатура.ТипНоменклатуры = "товары";
//НоваяНомеклатура.СхемаОбеспечения = "Основная схема обеспечения (создана при обновлении ИБ)";
//НоваяНомеклатура.РейтингПродаж = "низкий";
//Параметры для удачного создания номенклатуры
//НоваяНомеклатура.Качество = "новое";
//НоваяНомеклатура.ГруппаФинансовогоУчета = "Товары";
//НоваяНомеклатура.СтавкаНДС = 18%;
//НоваяНомеклатура.ТипНоменклатуры = "товары";
//НоваяНомеклатура.СхемаОбеспечения = "Основная схема обеспечения (создана при обновлении ИБ)";
//НоваяНомеклатура.РейтингПродаж = "низкий";
НАчнем с простого (у меня УТ11)... открываешь конфигурацию открываешь справочники.Номенклатура и смотришь что в реквизитах
например "Качество"
Качество является ссылкой на перечисление и писать нужно Код
НоваяНомеклатура.Качество = перечисления.ГрадацииКачества.Новый;
Если ты начнешь писать "перечисления." он тебе начнет подсказывать в 1с конфигураторе
Идем дальше ГруппаФинансовогоУчета является ссылкой на справочник
НоваяНомеклатура.ГруппаФинансовогоУчета = справочники.ГруппыФинансовогоУчетаНоменклатуры.НайтиПоНаименованию("Товары");
соответственно справочнике ГруппыФинансовогоУчетаНоменклатуры у тебя должна быть создана запись "Товары"
НоваяНомеклатура.СтавкаНДС =перечисления.СтавкиНДС.НДС18;
НоваяНомеклатура.ТипНоменклатуры = перечисления.ТипыНоменклатуры.Товар;
НоваяНомеклатура.СхемаОбеспечения = справочники.СхемыОбеспечения.НайтиПоНаименованию("Основная схема обеспечения (создана при обновлении ИБ)");
НоваяНомеклатура.РейтингПродаж = справочники.РейтингиПродажНоменклатуры.НайтиПоНаименованию("низкий");
вообще у тебя в коде есть Функция НайтиПроизводителя();
которая скорее всего ищет производителя в справочнике "производители" и если не находит то создает. можешь по аналогии создать свои функции на справочники ГруппаФинансовогоУчета СхемыОбеспечения РейтингиПродажНоменклатуры
И код в функции примерно такой
функция НайтиПроизводителя(Производитель)
ссылкаНаПроизводителя = Справочники.Производители.НайтиПоНаименованию(Производитель);
Если ссылкаНаПроизводителя = справочники.производители.ПустаяСсылка() тогда
спробъект = справочники.Производители.СоздатьЭлемент();
спробъект.Наименование = Производитель;
// какие-то обязательные реквизиты ещё заполняются;
спробъект.Записать();
возврат спробъект.Ссылка();
иначе
возврат ссылкаНаПроизводителя ;
Конецесли;
Конецфункции
Показать
есть функция заполнить настройки по умолчанию по типу номенклатуры
Номенклатура.ВидНоменклатуры = ВидНоменклатуры;
Номенклатура.ТипНоменклатуры = ВидНоменклатуры.ТипНоменклатуры;
Справочники.Номенклатура.ЗаполнитьРеквизитыПоВидуНоменклатуры(Номенклатура,,,ложь);
Номенклатура.Наименование = Наименование;
Номенклатура.ВидНоменклатуры = ВидНоменклатуры;
Номенклатура.ТипНоменклатуры = ВидНоменклатуры.ТипНоменклатуры;
Справочники.Номенклатура.ЗаполнитьРеквизитыПоВидуНоменклатуры(Номенклатура,,,ложь);
Номенклатура.Наименование = Наименование;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот