Имя: Пароль:
1C
 
Передать форму из вызываемой "ЭтаФорма" к внешней обработке УФ
0 ig0z
 
17.04.18
20:12
собственно весь вопрос в теме, не могу вспомнить или да же сформулировать правивльно
1 Остап Сулейманович
 
17.04.18
20:15
(0) Кто на ком стоял?
Нужно передать этаФорма внешней обработке? Или наоборот? Или где?
2 Остап Сулейманович
 
17.04.18
20:17
+ (1) А так смотри описалово к ОткрытьФорму.
ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)
Видимо 3-й параметр и есть то, что тебе нужно.
3 ig0z
 
17.04.18
20:19
(1) из формы документа вызывается подключаемая внешняя обработка, в неё нужно передать форму документа да бы заполнить

Раньше обходился Хранилищем значений, а тут ни вспомнить не найти не получается
4 Остап Сулейманович
 
17.04.18
20:26
(3) Для подключаемых форма не передается. Передается объект. Элемент справочника или документ.
5 ig0z
 
17.04.18
20:28
(4) хм ..., т.е у меня не получится реализовать заполнение Табеля не записывая его?

или как-то всё же можно?
6 ig0z
 
17.04.18
20:29
(4) если получу форму и открою её, то можно изменить таблицы и реквизиты не записывая, НО все что до этого не было записано в открытом исчезнет
7 Остап Сулейманович
 
17.04.18
20:32
(5) Получится. Но! Не нужно изобретать велосипед. Открой документацию по БСП и почитай там за обработки заполнения.
8 Остап Сулейманович
 
17.04.18
20:38
(7) Вот из документации по БСП :

/////////////////////////
Пример: обработка заполнения данных формы без записи объекта

Для типа обработок ЗаполнениеОбъекта предусмотрена возможность работать напрямую с данными формы (а не со ссылкой на объект), что позволяет не выполнять принудительную запись объекта в форме ни до, ни после выполнения обработки.

Пример команды заполнения данных формы:

Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации =ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид =ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта();
    ПараметрыРегистрации.Версия = "1.2";
    ПараметрыРегистрации.Назначение.Добавить("Справочник._ДемоКонтрагенты");
     НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Заполнить реквизит ""ИНН"" не записывая объект (заполнение формы)'");
    НоваяКоманда.Идентификатор = "ЗаполнитьИНН";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыЗаполнениеФормы();
    Возврат ПараметрыРегистрации;
КонецФункции

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

В примере ПараметрыВыполнения.ЭтаФорма - это видимо и есть то, что тебе нужно
9 ig0z
 
17.04.18
20:45
(8) Благодарю, попробую
10 Cyberhawk
 
17.04.18
20:54
Ребятки из БСП добавили тип команды "Заполнение формы", и теперь в коде этой команды можно пользоваться контекстом формы, правда весь код выполняется только на сервере.
Ребятки, делающие БСП, так и не научились модифицировать объект на клиенте без его записи в ИБ.
Т.е. если тебе нужен интерактивчик и не нужно сохранять изменения обекта, то облом-с.
11 Cyberhawk
 
17.04.18
20:55
Впрочем, в вариант команды "Открытие формы" у свойства формы обработки "Владелец" будет сидеть твоя форма. Но толку тебе от этого, скорее всего, будет мало.
12 Cyberhawk
 
17.04.18
20:56
Также возможны извращения с получением данных формы в виде ДФС (ДанныеФормыСтруктура), передачу на сервер, получение там объекта БД, модификация, преобразование обратно, возврат на клиент, затем на клиенте КопироватьДанныеФормы
13 Cyberhawk
 
17.04.18
20:57
Ну и почитай для затравки (может пригодится): https://www.forum.mista.ru/topic.php?id=768275
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.