Команда на выгрузку в весы в 1с Розница2.3

1. ShuSU 63 21.02.21 05:21 Сейчас в теме
Всем привет. Есть задача во внешней обработке назначить кнопку выгрузки товара в весы с печатью этикетки подключённые в 1С Розница.
В модуле системы я нашел код.
ПодключаемоеОборудованиеOfflineКлиент.НачатьВыгрузкуТоваровВВесы(, Элементы.Весы.ВыделенныеСтроки, Ложь);
, но он ссылается на выделеные строки в форме выбора устройства в подключённых офлайн устройств.
Мне же надо что бы по команде выгружались во все весы с учетом плана обмена, без дополнительного выбора реквизитов.
Через
МенеджерОборудованияКлиент.НачатьВыгрузкуДанныеВВесыСПечатьюЭтикеток
тоже не могу сообразить как это сделать.
Найденные решения
2. ShuSU 63 21.02.21 16:07 Сейчас в теме
Через Общий модуль смысла нету делать выгрузку. Я сделал через запрос определения ОборудованиеВесы и скопировал отредактировав код из модуля.
&НаКлиенте
Процедура Загрузка(Команда)
	ОписаниеОповещения = Новый ОписаниеОповещения("ВесыТоварыОперацияЗавершение", ЭтотОбъект);
	НачатьВыгрузкуТоваровВВесы(ОписаниеОповещения, ОборудованиеВесы, Ложь);
КонецПроцедуры

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

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

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

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

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

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот