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

Как получить форму на сервере?

Автор OlgaBK, 29 апр 2025, 12:59

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

OlgaBK

Мы находимся в модуле формы ЖурналаДокументов.ЖурналОпераций (ФормаСписка с динамическим списком)
Выполняется процедура
&НаСервере
...
ПараметрыЗаписи = Новый Структура;
ПараметрыЗаписи.Вставить("РежимЗаписи",РежимЗаписиДокумента.Проведение);
Для Каждого СтрТаблицы из ТаблицаОтчетов Цикл
   СсылкаНаДокумент = Документы.АктОбОказанииУслуг.НайтиПоНомеру(СтрТаблицы.Номер, СтрТаблицы.Дата);
   ТекущийОбъект = СсылкаНаДокумент.ПолучитьОбъект();
   //переходим в процедуру ПередЗаписью в модуль менеджера   
   ЖурналыДокументов.ЖурналОпераций.ПередЗаписью(Отказ, ТекущийОбъект, ПараметрыЗаписи, Форма);
   ...
КонецЦикла;
...
В параметр Форма мне надо передать форму документа, которую можно получить по ссылке на документ, но так можно сделать только на Клиенте:
   ПараметрФормы = Новый Структура("Ключ", СсылкаНаДокумент ); 
   Форма = ПолучитьФорму("Документ.АктОбОказанииУслуг.Форма.ФормаДокумента", ПараметрФормы);

Возможно ли получить форму на сервере?

sali

а для каких целей?? вообще нет. получить данные формы на сервере - аналогично ,нет

OlgaBK

Мне нужно сделать перепроведение документов (с перевыбором бухгалтерской операции).
И в процедуре ПередЗаписью(Отказ, ТекущийОбъект, ПараметрыЗаписи, Форма)
идет обращение к форме документа:
ТиповаяОперация = Форма[БухгалтерскиеОперацииКлиентСервер.ИмяРеквизитаФормыТиповаяОперация()];
БухгалтерскиеОперацииСервер.СформироватьСтруктуруДопРеквизитов(Форма, ДополнительныеРеквизиты, ЗначенияДопРеквизитов, НеИспользоватьВалютныйУчет);

Максим75

Цитата: OlgaBK от 30 апр 2025, 06:29Мне нужно сделать перепроведение документов (с перевыбором бухгалтерской операции).
И в процедуре ПередЗаписью(Отказ, ТекущийОбъект, ПараметрыЗаписи, Форма)
идет обращение к форме документа:
ТиповаяОперация = Форма[БухгалтерскиеОперацииКлиентСервер.ИмяРеквизитаФормыТиповаяОперация()];
БухгалтерскиеОперацииСервер.СформироватьСтруктуруДопРеквизитов(Форма, ДополнительныеРеквизиты, ЗначенияДопРеквизитов, НеИспользоватьВалютныйУчет);
вот пока ничего не понятно.
Вам нужно в выборке документов что-то изменить в самом объекте (документе) и его записать (с перепроведением)?

depb

OlgaBK, не совсем понятно, что мешает вызвать форму на клиенте и потом обратиться к ее серверной процедуре. Что-то типа

&НаКлиенте
Процедура ВашаПроцедура (Команда)

Для Каждого Док Из СписокДокументов Цикл //= перебор документов

ФормаДок = ПолучитьФорму("Документ.ВашДокумент.Форма.ФормаДокумента", новый Структура("Ключ",Док.Ссылка));
ФормаДок.ПроцедураНаСервере();

КонецЦикла

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

//== модуль формы
&НаСервере
Процедура ПроцедураНаСервере() Экспорт
   
    //= ваши действия

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



sali

Цитата: depb от 30 апр 2025, 11:38
ФормаДок = ПолучитьФорму("Документ.ВашДокумент.Форма.ФормаДокумента", новый Структура("Ключ",Док.Ссылка));
ФормаДок.ПроцедураНаСервере();


а как это?

depb

sali, что именно? можете смоделировать, внешняя обработка с табличной частью, где заполняются документы, кнопка на форме. К кнопке процедура, что я писал выше. В модуле формы документа экспортная процедура к которой будете обращаться. Делов 5 мин

sali

depb, не, просто первый раз вижу что так обращаются к процедуре. обычно пишут
ПроцедураНаСервере();

//или так

ФормаДок = ПроцедураНаСервере(//что-то нужно получить);

Максим75

sali, да это вызывается экспортная процедура модуля формы.
форма существующего дока вызывается извне, не открывается, а просто вызывается процедура модуля формы для выполнения каких-либо действий.

Теги:

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

Рейтинг@Mail.ru

Поиск