Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 сен 2025, 18:12

Как при запуске работы системы запустить внешнюю обработку

Автор sali, 11 сен 2025, 08:50

0 Пользователей и 2 гостей просматривают эту тему.

sali

antoneus, как из модуля менеджера передать значения реквизитов формы и вызвать процедуру с общего модуля?точнее получить параметры -тип ДанныеФормыСтруктура

antoneus

Модуль менеджера выполняется на сервере. Нет там ни формы, ни данных формы, ни параметров формы - ничего там нет.

Хотя если ее передать в процедуру модуля менеджера из ПриСозданииНаСервере - можно будет ее пощупать и даже параметры живые будут.

antoneus

Ну и если эти данные приезжают в параметрах - значит, где-то они в эти параметры перед открытием формы кладутся. А до этого они откуда-то получаются. Вот значит, ставим точку останова в ПриСозданииНаСервере, по стеку вызовов смотрим - где что происходит.

sali

antoneus, там идет такая запись
Параметры.Свойство("АдресПубликации", АдресПубликации);
Параметры.Свойство("КлючКлиента", КлючКлиента);

и как бы всё, то есть как и где они сохраняются я так и не нашел . Ну не суть. решил больше не мудохаться и пойти по вашим советам, вы всегда правы остаетесь, плохого не посоветуете. Так как я РЗ создаю программно и записываю в регистр я добавил код для записи параметров в тот же регистр куда и РЗ сохраняется. От туда я беру уже параметры и подставляю их. Даже не так, они сами берутся.

По итогу мне теперь нужно переписать запуск своего РЗ под новый модуль, под расширение ЭДО. Почему? Потому что я заимствовал общий модуль у конфигурации "ДополнительныеОтчетыИОбработки", вроде как для БП тоже пойдет, но конфликт в 1С может произойти по - любому поводу, лучше перестраховаться.

Спасибо, antoneus.

sali

antoneus, а вы не знаете как сделать такое же , но с функциями которым нужно больше параметров , один из которых берется чисто с формы обработки??
нужно выгружать остатки по регламенту. процесс такой, по кнопке заполнить заполняется тч Товары (там вся номенклатура), выглядит так Снимок экрана 2025-09-16 140919.png

выгружается только то , где стоит галочка, а галочка - реквизит формы тч. и код для этого
&НаСервере
Функция ВыгрузитьЦеныНаСервере()
КлючТорговогоОборудования = ?(ЭДОН_ТорговоеОборудование.Пустая(), "", ЭДОН_ТорговоеОборудование.ГУИДИсточника);
МассивСтрокВыгрузки = Товары.НайтиСтроки(Новый Структура("Выбран", Истина));
Возврат ЭДОН_РаботаССервисом.ВыгрузитьЦены(АдресПубликации, КлючКлиента, КлючТорговогоОборудования, МассивСтрокВыгрузки, ДатаНачала);
КонецФункции// ВыгрузитьЦеныНаСервере()

каким образом получить МассивСтрокВыгрузки??

antoneus


sali

antoneus, изначально все проставляется Новый Структура("Выбран", Истина));заполняется тч и у всей номенк. стоит истина

я думаю в модуле менеджера сделать пустую экспортную функцию , потом ее вызвать как-то в модуле формы, не додумкаю только как ее в модуле формы вызвать чтобы работала и в ручном режиме и в режиме регламента (или это уже не обязательно...?)

antoneus

То есть нужна вся номенклатура в ТЧ? Ок, как заполняется ТЧ?

sali

Цитата: antoneus от Сегодня в 11:59То есть нужна вся номенклатура в ТЧ?
да, нужно выгружать цены всей номенклатуры. это в ручную можно выбрать определенную, а регламентом это зачем?
Цитата: antoneus от Сегодня в 11:59Ок, как заполняется ТЧ?
определяет на каком режиме находится (номенклатура, цены, контрагенты, дисконтные карты и т д) , согласно выбранному режиму выгружает таблицу. вот они всеСнимок экрана 2025-09-16 150909.png
проверяет всякий отбор если установлен , и загружает

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
Если Режим = "Контрагенты" Тогда
ТаблицаРезультат = Контрагенты.Выгрузить();
ИначеЕсли Режим = "ДисконтныеКарты" Тогда
ТаблицаРезультат = ДисконтныеКарты.Выгрузить();
ИначеЕсли Режим = "Скидки" Тогда
....
КонецЕсли;

ПроцессорВывода.УстановитьОбъект(ТаблицаРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

Если Режим = "Контрагенты" Тогда
Контрагенты.Загрузить(ТаблицаРезультат);
ИначеЕсли Режим = "ДисконтныеКарты" Тогда
ДисконтныеКарты.Загрузить(ТаблицаРезультат);
КонецПроцедуры

antoneus

Ну то есть в регламент можно смело пулять всю номенклатуру?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск