Связать обработку подбора номенклатуры УТ 10.3 и форму внешней обработки
Для конфигурации УТ 10.3 написал обработку в которой есть табличная часть товары, которая заполняется по определенному алгоритму. Вставил на нее кнопку подбор, которая открывает стандартную обработку подбора для этой табличной части. Форма открывается, но не возвращает в табличную часть товары выбранные значения. Не пойму как связать обработку подбора и форму своей внешней обработки.
Подскажите как это сделать?!
Подскажите как это сделать?!
По теме из базы знаний
- Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2
- Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Подключение онлайн кассы (ККМ) ATOL к УТ 10.3 в терминале. Личный опыт
- Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.
- API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1) нужно модуле формы своей обработки использовать
пример можно взять из модуля формы любого документа
Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
Перем Команда;
Если ТипЗнч(ЗначениеВыбора) = Тип("Структура") Тогда
ЗначениеВыбора.Свойство("Команда", Команда);
Если Команда = "ПодборВТабличнуюЧастьТовары" Тогда
ОбработкаПодбора(Товары, ЗначениеВыбора);
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ОбработкаВыбора()
Показатьпример можно взять из модуля формы любого документа
Процедура ДействиеПодбор(ТабличнаяЧасть)
Перем Команда, Валюта;
ЕстьЦена = Истина;
ЕстьСерия = Ложь;
СкрыватьХарактеристику = Ложь;
Валюта = Справочники.Валюты.НайтиПоНаименованию("руб");
ПодбиратьУслуги = Ложь;
Команда = "ПодборВТабличнуюЧастьТовары";
ИмяТабличнойЧасти = "Товары";
СписокВидовПодбора = СформироватьСписокЗапросовДляПодбора(ТабличнаяЧасть);
ПредставлениеДок = Метаданные().Представление();
СтруктураПараметровПодбора = Новый Структура();
СтруктураПараметровПодбора.Вставить("Команда" , Команда);
СтруктураПараметровПодбора.Вставить("СписокВидовПодбора" , СписокВидовПодбора);
// Параметры запросов.
ВременнаяДатаРасчетов = ?(НачалоДня(ТекущаяДата()) = НачалоДня(ТекущаяДата()), Неопределено, ТекущаяДата());
СтруктураПараметровПодбора.Вставить("ДатаРасчетов" , ТекущаяДата());
СтруктураПараметровПодбора.Вставить("Склад" , Справочники.Склады.НайтиПоНаименованию("СКЛАД №1"));
СтруктураПараметровПодбора.Вставить("ТипЦен" , Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Прайсная"));
СтруктураПараметровПодбора.Вставить("ДоговорКонтрагента" , Контрагент.ОсновнойДоговорКонтрагента);
СтруктураПараметровПодбора.Вставить("Контрагент" , Контрагент);
СтруктураПараметровПодбора.Вставить("Организация" , Организация);
СтруктураПараметровПодбора.Вставить("ПодбиратьУслуги" , Ложь);
СтруктураПараметровПодбора.Вставить("СпособЗаполненияЦен" , Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры);
СтруктураПараметровПодбора.Вставить("ЕстьЦена" , Истина);
СтруктураПараметровПодбора.Вставить("ЕстьСерия" , Ложь);
СтруктураПараметровПодбора.Вставить("ИспользоватьГруппуДоступности", Истина);
СтруктураПараметровПодбора.Вставить("ВалютаДокумента" , Справочники.Валюты.НайтиПоНаименованию("руб"));
СтруктураПараметровПодбора.Вставить("СкрыватьХарактеристику" , Ложь);
СтруктураПараметровПодбора.Вставить("Заголовок", "Подбор номенклатуры в рек заказ");
СтруктураПараметровПодбора.Вставить("УсловиеПродаж" , Справочники.УсловияПродаж.ПустаяСсылка());
РаботаСДиалогами.ОткрытьПодборНоменклатуры(ЭтаФорма, СтруктураПараметровПодбора, Метаданные());
КонецПроцедуры // ДействиеПодбор()
Показать
Провел эксперимент. Скопировал (важно что именно скопировал) во внешнюю обработку документ инвентаризация. Вычистил в нем все функции, которые на касаются подбора. Осталось несколько функций и подбор работает - возвращает в табличную часть товары выбранное значение.
После чего создал новую обработку и заполнил (заполнил вручную) ее теми же самыми реквизитами, табличными частями и т.п. и вставил в нее те же самые функции, что остались в обработке инвентаризации. В итоге подбор не возвращает значения.
В итоге оказалось, что скопированная форма документа организации в свойствах в поле данные имеет: ДокументОбъект и тип значения: ДокументОбъект.ИнвентаризацияТоваровНаСкладе.
А созданная вручную форма данные: ОбработкаОбъект и тип значения: ВнешняяОбработка.ТестоваяОбработкаФорма
И сразу перестает работать функция ОбработкаВыбора. Как будто 1С не находит в этом случае форму в которую необходимо вернуть результат подбора.
После чего создал новую обработку и заполнил (заполнил вручную) ее теми же самыми реквизитами, табличными частями и т.п. и вставил в нее те же самые функции, что остались в обработке инвентаризации. В итоге подбор не возвращает значения.
В итоге оказалось, что скопированная форма документа организации в свойствах в поле данные имеет: ДокументОбъект и тип значения: ДокументОбъект.ИнвентаризацияТоваровНаСкладе.
А созданная вручную форма данные: ОбработкаОбъект и тип значения: ВнешняяОбработка.ТестоваяОбработкаФорма
И сразу перестает работать функция ОбработкаВыбора. Как будто 1С не находит в этом случае форму в которую необходимо вернуть результат подбора.
Как только добавил обработку в конфигурацию, обработка ПодборНоменклатуры сразу начала находить куда необходимо возвращать значения. Получается, что для внешней обработки нельзя реализовать работу обработки ПодборНоменклатуры в табличную часть Товары. Потому, что в случае с внешней обработкой не находится владелец вызвавший форму подбора?