Всем привет. Есть задача во внешней обработке назначить кнопку выгрузки товара в весы с печатью этикетки подключённые в 1С Розница.
В модуле системы я нашел код.

```1c
    ПодключаемоеОборудованиеOfflineКлиент.НачатьВыгрузкуТоваровВВесы(, Элементы.Весы.ВыделенныеСтроки, Ложь);
```
, но он ссылается на выделеные строки в форме выбора устройства в подключённых офлайн устройств.
Мне же надо что бы по команде выгружались во все весы с учетом плана обмена, без дополнительного выбора реквизитов.
Через
```1c
    МенеджерОборудованияКлиент.НачатьВыгрузкуДанныеВВесыСПечатьюЭтикеток
```
 тоже не могу сообразить как это сделать.
---
Через Общий модуль смысла нету делать выгрузку. Я сделал через запрос определения ОборудованиеВесы и скопировал отредактировав код из модуля.

```1c
    &НаКлиенте
    Процедура Загрузка(Команда)
    ОписаниеОповещения = Новый ОписаниеОповещения("ВесыТоварыОперацияЗавершение", ЭтотОбъект);
    НачатьВыгрузкуТоваровВВесы(ОписаниеОповещения, ОборудованиеВесы, Ложь);
    КонецПроцедуры

    &НаКлиенте
    Процедура ВесыТоварыОперацияЗавершение(РезультатВыполнения, Параметры) Экспорт
    Состояние("Вроде все");

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

    &НаКлиенте
    Процедура НачатьВыгрузкуТоваровВВесыЗавершение(РезультатВыполнения, Параметры) Экспорт
    ТекстСообщения = НСтр("ru = 'Устройство:'") + Символы.НПП + РезультатВыполнения.ИдентификаторУстройства + Символы.ПС;
    Если РезультатВыполнения.Результат Тогда
    ПодключаемоеОборудованиеOfflineВызовСервера.ПриВыгрузкеТоваровВУстройство(РезультатВыполнения.ИдентификаторУстройства, Параметры.СтруктураДанные,
    Параметры.ЧастичнаяВыгрузка, РезультатВыполнения.Результат);
    ТекстСообщения = ТекстСообщения + НСтр("ru = 'Товары успешно выгружены.'");
    Иначе
    ТекстСообщения = ТекстСообщения + НСтр("ru = 'Выгрузить товары не удалось:'") + Символы.НПП + РезультатВыполнения.ОписаниеОшибки;
    КонецЕсли;
    ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения);
    Если Параметры.ОповещениеПриВыгрузке <> Неопределено Тогда
    ВыполнитьОбработкуОповещения(Параметры.ОповещениеПриВыгрузке, РезультатВыполнения);
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура НачатьВыгрузкуТоваровВВесы(ОповещениеПриВыгрузке, МассивУстройств, ЧастичнаяВыгрузка) Экспорт
    Состояние(НСтр("ru = 'Выполняется выгрузка товаров в весы с печатью этикеток...'"));
    СтруктураДанные = ПодключаемоеОборудованиеOfflineВызовСервера.ДанныеДляВесов(ОборудованиеВесы, ЧастичнаяВыгрузка);
    Контекст = Новый Структура("ОповещениеПриВыгрузке, СтруктураДанные, ЧастичнаяВыгрузка", ОповещениеПриВыгрузке, СтруктураДанные, ЧастичнаяВыгрузка);
    Если Не ЗначениеЗаполнено(СтруктураДанные) Или СтруктураДанные.Данные.Количество() = 0 Тогда
    Если Не ЗначениеЗаполнено(СтруктураДанные) Тогда
    ОписаниеОшибки = НСтр("ru = 'План обмена не установлен.'");
    ИначеЕсли СтруктураДанные.КоличествоНеВыгруженныхСтрокСОшибками = 0 Тогда
    ОписаниеОшибки = НСтр("ru = 'Нет данных для выгрузки.'");
    Иначе
    ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Данные не выгружены. Обнаружено ошибок:%1'"), СтруктураДанные.КоличествоНеВыгруженныхСтрокСОшибками);
    КонецЕсли;
    РезультатВыполнения = Новый Структура("Результат, ОписаниеОшибки, ИдентификаторУстройства", Ложь, ОписаниеОшибки, ОборудованиеВесы);
    НачатьВыгрузкуТоваровВВесыЗавершение(РезультатВыполнения, Контекст);
    Иначе
    ИдентификаторКлиента = Новый УникальныйИдентификатор;
    ОписаниеОповещения = Новый ОписаниеОповещения("НачатьВыгрузкуТоваровВВесыЗавершение", ЭтотОбъект, Контекст);
    МенеджерОборудованияКлиент.НачатьВыгрузкуДанныеВВесыСПечатьюЭтикеток(ОписаниеОповещения,
    ИдентификаторКлиента, СтруктураДанные.Данные, ОборудованиеВесы, СтруктураДанные.ЧастичнаяВыгрузка)
    КонецЕсли;
    КонецПроцедуры
```
---
Через Общий модуль смысла нету делать выгрузку. Я сделал через запрос определения ОборудованиеВесы и скопировал отредактировав код из модуля.

```1c
    &НаКлиенте
    Процедура Загрузка(Команда)
    ОписаниеОповещения = Новый ОписаниеОповещения("ВесыТоварыОперацияЗавершение", ЭтотОбъект);
    НачатьВыгрузкуТоваровВВесы(ОписаниеОповещения, ОборудованиеВесы, Ложь);
    КонецПроцедуры

    &НаКлиенте
    Процедура ВесыТоварыОперацияЗавершение(РезультатВыполнения, Параметры) Экспорт
    Состояние("Вроде все");

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

    &НаКлиенте
    Процедура НачатьВыгрузкуТоваровВВесыЗавершение(РезультатВыполнения, Параметры) Экспорт
    ТекстСообщения = НСтр("ru = 'Устройство:'") + Символы.НПП + РезультатВыполнения.ИдентификаторУстройства + Символы.ПС;
    Если РезультатВыполнения.Результат Тогда
    ПодключаемоеОборудованиеOfflineВызовСервера.ПриВыгрузкеТоваровВУстройство(РезультатВыполнения.ИдентификаторУстройства, Параметры.СтруктураДанные,
    Параметры.ЧастичнаяВыгрузка, РезультатВыполнения.Результат);
    ТекстСообщения = ТекстСообщения + НСтр("ru = 'Товары успешно выгружены.'");
    Иначе
    ТекстСообщения = ТекстСообщения + НСтр("ru = 'Выгрузить товары не удалось:'") + Символы.НПП + РезультатВыполнения.ОписаниеОшибки;
    КонецЕсли;
    ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения);
    Если Параметры.ОповещениеПриВыгрузке <> Неопределено Тогда
    ВыполнитьОбработкуОповещения(Параметры.ОповещениеПриВыгрузке, РезультатВыполнения);
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура НачатьВыгрузкуТоваровВВесы(ОповещениеПриВыгрузке, МассивУстройств, ЧастичнаяВыгрузка) Экспорт
    Состояние(НСтр("ru = 'Выполняется выгрузка товаров в весы с печатью этикеток...'"));
    СтруктураДанные = ПодключаемоеОборудованиеOfflineВызовСервера.ДанныеДляВесов(ОборудованиеВесы, ЧастичнаяВыгрузка);
    Контекст = Новый Структура("ОповещениеПриВыгрузке, СтруктураДанные, ЧастичнаяВыгрузка", ОповещениеПриВыгрузке, СтруктураДанные, ЧастичнаяВыгрузка);
    Если Не ЗначениеЗаполнено(СтруктураДанные) Или СтруктураДанные.Данные.Количество() = 0 Тогда
    Если Не ЗначениеЗаполнено(СтруктураДанные) Тогда
    ОписаниеОшибки = НСтр("ru = 'План обмена не установлен.'");
    ИначеЕсли СтруктураДанные.КоличествоНеВыгруженныхСтрокСОшибками = 0 Тогда
    ОписаниеОшибки = НСтр("ru = 'Нет данных для выгрузки.'");
    Иначе
    ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Данные не выгружены. Обнаружено ошибок:%1'"), СтруктураДанные.КоличествоНеВыгруженныхСтрокСОшибками);
    КонецЕсли;
    РезультатВыполнения = Новый Структура("Результат, ОписаниеОшибки, ИдентификаторУстройства", Ложь, ОписаниеОшибки, ОборудованиеВесы);
    НачатьВыгрузкуТоваровВВесыЗавершение(РезультатВыполнения, Контекст);
    Иначе
    ИдентификаторКлиента = Новый УникальныйИдентификатор;
    ОписаниеОповещения = Новый ОписаниеОповещения("НачатьВыгрузкуТоваровВВесыЗавершение", ЭтотОбъект, Контекст);
    МенеджерОборудованияКлиент.НачатьВыгрузкуДанныеВВесыСПечатьюЭтикеток(ОписаниеОповещения,
    ИдентификаторКлиента, СтруктураДанные.Данные, ОборудованиеВесы, СтруктураДанные.ЧастичнаяВыгрузка)
    КонецЕсли;
    КонецПроцедуры
```