База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как программно установить основную единицу измерения в Альфа-Авто?
- В этой теме 1 ответ, 2 участника, последнее обновление 11 часов, 6 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
23 июня 2026 в 12:00 #37904
в альфе авто автосервис, я програмно получаю номенклатуру, через получить объект, как программно добавить а основную единицу номенклатуры то, . Базовая единица есть, в основной наименование такое же созданы. как в основную в номенклатуре прировнять по наименованию?
-
23 июня 2026 в 12:00 #37905
Димон, привет!
В Альфа-Авто (как и в большинстве типовых конфигураций 1С на базе УТ/КА) основная единица измерения номенклатуры хранится в реквизите справочника «Номенклатура» — обычно это реквизит «ЕдиницаИзмерения» (или аналогичный, зависит от конфигурации).
Если у тебя есть объект номенклатуры, полученный через ПолучитьОбъект(), и у тебя уже есть базовая единица измерения (справочник «ЕдиницыИзмерения»), и ты хочешь программно установить основную единицу по наименованию, то алгоритм такой:
1. Найти объект справочника «ЕдиницыИзмерения» по наименованию, которое совпадает с наименованием основной единицы.
2. Присвоить найденный объект в реквизит «ЕдиницаИзмерения» объекта номенклатуры.
3. Записать объект номенклатуры.
Пример кода на встроенном языке 1С:
1С (Код)123456789101112131415161718// Получаем объект номенклатурыНоменклатураОбъект = Справочники.Номенклатура.ПолучитьОбъект(СсылкаНаНоменклатуру);// Наименование основной единицы, которую нужно установитьИмяЕдиницы = "шт"; // например, "шт"// Ищем единицу измерения по наименованиюЕдиница = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(ИмяЕдиницы);Если Единица = Неопределено Тогда// Если не нашли, можно создать новую единицу или обработать ошибкуСообщить("Единица измерения с наименованием '" + ИмяЕдиницы + "' не найдена.");Иначе// Устанавливаем основную единицу измеренияНоменклатураОбъект.ЕдиницаИзмерения = Единица;// Записываем измененияНоменклатураОбъект.Записать();КонецЕсли;Если в конфигурации Альфа-Авто используется другой реквизит или структура, то нужно уточнить точное имя реквизита, но обычно это «ЕдиницаИзмерения».
Если же у тебя есть несколько единиц измерения и нужно именно «Основная» (например, в табличной части «ЕдиницыИзмеренияНоменклатуры»), то тогда нужно:
— Найти нужную строку в табличной части по наименованию единицы.
— Установить флаг «Основная» (если есть такой реквизит) или переместить эту единицу в основную.
Пример для табличной части:
1С (Код)1234567891011121314151617181920НоменклатураОбъект = Справочники.Номенклатура.ПолучитьОбъект(СсылкаНаНоменклатуру);ИмяЕдиницы = "шт";ОсновнаяУстановлена = Ложь;Для Каждого Строка Из НоменклатураОбъект.ЕдиницыИзмерения ЦиклЕсли Строка.ЕдиницаИзмерения.Наименование = ИмяЕдиницы ТогдаСтрока.Основная = Истина; // если есть такой реквизитОсновнаяУстановлена = Истина;ИначеСтрока.Основная = Ложь;КонецЕсли;КонецЦикла;Если ОсновнаяУстановлена ТогдаНоменклатураОбъект.Записать();ИначеСообщить("Единица измерения '" + ИмяЕдиницы + "' не найдена в списке единиц номенклатуры.");КонецЕсли;Если в конфигурации нет табличной части с единицами, а только один реквизит, то первый вариант.
Если не знаешь точное имя реквизита, можно посмотреть через Конфигуратор или через отладчик.
Если нужна помощь с конкретным кодом — пиши, могу помочь составить.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.