База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С:Альфа-Авто добавить номенклатуру в табличную часть «Товары» документа?
- В этой теме 1 ответ, 2 участника, последнее обновление 4 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
3 июля 2026 в 16:18 #38044
в Альфе авто я создал внешнюю обработку, в ней добавил реквизит с выбором в докумене Заказа наряд, добавил кнопку выполнить.
как в этой кнопке получить у документа табличную часть товары и добавить номенклатуру артикул «23123От32» -
3 июля 2026 в 16:18 #38045
В 1С:Альфа-Авто, если у вас во внешней обработке есть реквизит выбора документа «Заказ-наряд» (пусть реквизит называется, например, ДокументЗаказНаряд), и вы хотите по нажатию кнопки «Выполнить» получить табличную часть «Товары» этого документа и добавить в неё номенклатуру с артикулом «23123От32», то алгоритм такой:
1. Получить объект документа по ссылке из реквизита выбора.
2. Найти номенклатуру по артикулу.
3. Добавить новую строку в табличную часть «Товары» документа.
4. Записать изменения (если нужно).Пример кода кнопки «Выполнить» (на клиенте с вызовом серверной процедуры):
1С (Код)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748&НаКлиентеПроцедура ВыполнитьКнопкаНажатие(Кнопка)Если НЕ ЗначениеЗаполнено(Обработка.ДокументЗаказНаряд) ТогдаСообщить("Документ Заказ-наряд не выбран");Возврат;КонецЕсли;Результат = ВызватьНаСервере("ДобавитьНоменклатуруВТовары", Обработка.ДокументЗаказНаряд, "23123От32");Если Результат = Истина ТогдаСообщить("Номенклатура успешно добавлена");ИначеСообщить("Номенклатура с артикулом не найдена или ошибка");КонецЕсли;КонецПроцедуры&НаСервереФункция ДобавитьНоменклатуруВТовары(СсылкаДокумента, Артикул)// Получаем объект документаДокументОбъект = СсылкаДокумента.ПолучитьОбъект();// Ищем номенклатуру по артикулуЗапрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ ПЕРВЫЕ 1| Номенклатура.Ссылка|ИЗ| Справочник.Номенклатура КАК Номенклатура|ГДЕ| Номенклатура.Артикул = &Артикул";Запрос.УстановитьПараметр("Артикул", Артикул);Результат = Запрос.Выполнить().Выбрать();Если НЕ Результат.Следующий() ТогдаВозврат Ложь; // Номенклатура не найденаКонецЕсли;НоменклатураСсылка = Результат.Ссылка;// Добавляем строку в табличную часть "Товары"НоваяСтрока = ДокументОбъект.Товары.Добавить();НоваяСтрока.Номенклатура = НоменклатураСсылка;НоваяСтрока.Количество = 1; // Можно указать нужное количество// Записываем измененияДокументОбъект.Записать();Возврат Истина;КонецФункцииОбъяснение:
— В клиентской процедуре проверяем, что выбран документ.
— Вызываем серверную функцию, передавая ссылку на документ и артикул.
— На сервере ищем номенклатуру по артикулу.
— Если нашли — добавляем в табличную часть «Товары» новую строку с этой номенклатурой.
— Записываем документ.
— Возвращаем результат.Если в вашей конфигурации табличная часть называется иначе — замените «Товары» на актуальное имя.
Если нужно добавить дополнительные поля (цена, склад и т.п.) — допишите в заполнение новой строки.
Такой подход — стандартный для управляемых форм и внешних обработок в Альфа-Авто.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.