УстановкаЦенНоменклатуры отбор

1. user776151 11.05.21 06:25 Сейчас в теме
Добрый день.
Заполняю УстановкуЦенНоменклатуры из внешней обработки с помощью общего модуля УстновкаЦенСервер Функция ЗагрузитьИзExcel(Форма, МассивСтруктурЦен, МассивСтруктурТовары). При ВидОбработкиЗаполнениеОбъекта() в модуль объекта обработки в процедуру ВыполнитьКоманду передается форма. Затем я передаю ее в Функция ЗагрузитьИзExcel(Форма, МассивСтруктурЦен, МассивСтруктурТовары). Нужно сделать отбор на номенклатуру перед загрузкой в документ. Используя ОткрытиеФормы(), форма есть во Вледельце Формы, но передать ее на сервер я не могу. Как правильнее организовать отбор в данном случае?
По теме из базы знаний
Найденные решения
7. user776151 13.05.21 07:00 Сейчас в теме
Вопрос решен. Сделал через расширение.
Прикрутил кнопку на форму документа, сделал отбор, затем НаСервере вызвал ЗагрузитьИзExcel(Форма, МассивСтруктурЦен, МассивСтруктурТовары) (в модуле формы документа форма доступна НаСервере).
Спасибо всем откликнувшимся.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. XAKEP 11.05.21 08:36 Сейчас в теме
правильней выложить обработку
3. retr0 11.05.21 09:05 Сейчас в теме
Я понял только
Заполняю УстановкуЦенНоменклатуры из внешней обработки с помощью общего модуля УстновкаЦенСервер Функция ЗагрузитьИзExcel(Форма, МассивСтруктурЦен, МассивСтруктурТовары).
и
Нужно сделать отбор на номенклатуру перед загрузкой в документ.
Что написано между этим предложениями, то мне требуется переводчик. Если опираться только на те предложения, что понял я, то просто при вызове процедуры ОткрытьФорму() передать туда аргумент в виде ссылки на номенклатуру по которой нужен отбор.

ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Номенклатура", Номенклатура);
ОткрытьФорму("БлаБла.БлабБла.Форма.МояФорма",  ПараметрыФормы);


Это если по-простому. И уже при открытии вызываемой формы, как-то обрабатывать полученный параметр из структуры "Параметры".
С какими, формами и таблицами ты работаешь мне не известно, поэтому описывать установку параметров я не буду, ибо для каждой таблицы свой способ.
4. user776151 11.05.21 10:25 Сейчас в теме
(3) ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта");
В данном случае, в модуль объекта обработки в процедуру ВыполнитьКоманду передается форма клиентского приложения. Затем я передаю ее в Функция ЗагрузитьИзExcel(Форма, МассивСтруктурЦен, МассивСтруктурТовары). Обработка работает, ТЧ Установки цен номенклатуры заполняется. Нужно сделать отбор на номенклатуру.
При
ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта"); Команда.Использование = "ОткрытиеФормы"; или Команда.Использование = "ВызовКлиентскогоМетода"; форма клиентского приложения есть во владельце формы внешней обработки.
Но передать ее на сервер я не могу, так как во владельце находится.
Форма внешней обработки открывается из Общего модуля ДополнительныеОтчетыИОбработкиКлиент Процедура ОбработчикКомандыЗаполнения. В параметрах есть только имя формы, сама форма во владельце.
5. retr0 11.05.21 10:56 Сейчас в теме
(4) Я все равно мало что понимаю, из твоих изречений. Для начала. Реквизит "ВладелецФормы" он в принципе не доступен на сервере. Дальше, с клиента на сервер ты не можешь передать Форму, тк она не является сериализуемым объектом (можешь почитать про это если не знаешь).

Еще один нюанс, я сам до сих не понимаю причину разработчиков выносить в ОбщиеМодули процедуры/функции, которые заточены на работу только с конкретным Объектом. В данном случае Функция ЗагрузитьИзExcel() принимает форму документа УстановкаЦенНоменклатуры. И взаимодействует только с ее реквизитами.

Теперь давай по порядку попробуем разобрать.
Зачем тебе Форма которую ты пытаешь передать на сервер? Как эта форма связана с отбором по номенклатуре?
6. user776151 11.05.21 11:37 Сейчас в теме
(5)Знаю что недоступен на сервере. Знаю что не могу передать форму.
Как раз форму документа УстановкаЦенНоменклутры и передаю в ЗагрузитьИзExcel().
Заполняю ТЧ документа УстановкаЦенНоменклатуры.
Перед заполнением ТЧ документа УстановкаЦен, нужно отбор произвести.

ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта") - в данном случае, в модуль объекта обработки в процедуру ВыполнитьКоманду передается форма клиентского приложения и ТЧ заполняется.
7. user776151 13.05.21 07:00 Сейчас в теме
Вопрос решен. Сделал через расширение.
Прикрутил кнопку на форму документа, сделал отбор, затем НаСервере вызвал ЗагрузитьИзExcel(Форма, МассивСтруктурЦен, МассивСтруктурТовары) (в модуле формы документа форма доступна НаСервере).
Спасибо всем откликнувшимся.
Оставьте свое сообщение

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