Имя: Пароль:
1C
 
Получить реквизиты формы в УФ
0 Kristian
 
04.07.19
00:09
Как мне вот это вот:
        формаЗалога = Документы.ЛМБ_ОперацияПоЗалогу.ПолучитьФорму("ФормаДокументаУправляемая");
    ВидОперации = ФормаЗалога.Объект.ВидОперации;
    Имущество = ФормаЗалога.Объект.Имущество;
    ЗалогБилет = ФормаЗалога.Объект.ЗалоговыйБилет;    
    Дата = ФормаЗалога.Объект.Дата;

переделать в управляемые форма, на обычных работает (получаю данные из формы в общий модуль)
1 palsergeich
 
04.07.19
00:10
формаЗалога = Документы.ЛМБ_ОперацияПоЗалогу.ПолучитьФорму("ФормаДокументаУправляемая");
Вот эта строчка зачем?
2 Kristian
 
04.07.19
00:11
Ага, а как ее можно заменить?
3 palsergeich
 
04.07.19
00:12
формаЗалога = Документы.ЛМБ_ОперацияПоЗалогу.ПолучитьФорму("ФормаДокументаУправляемая");
    ВидОперации = ФормаЗалога.Объект.ВидОперации;
    Имущество = ФормаЗалога.Объект.Имущество;
    ЗалогБилет = ФормаЗалога.Объект.ЗалоговыйБилет;    
    Дата = ФормаЗалога.Объект.Дата;
Этот код в том виде, в котором есть тебе вернет пустые значения.
Что нужно то и что есть?
4 palsergeich
 
04.07.19
00:12
(2) Смотря что надо
5 palsergeich
 
04.07.19
00:13
Зачем ты вообще получаешь форму?
Кстати и для ОФ решение сомнительное
6 palsergeich
 
04.07.19
00:14
Ты уверен что листинг скопирован корректно?
7 palsergeich
 
04.07.19
00:15
Потому что в том виде что есть, очень странно, что оно и в ОФ то работает, есть подозрение что часть кода пропущена.
8 Kristian
 
04.07.19
00:19
формаЗалога = Документы.ЛМБ_ОперацияПоЗалогу.ПолучитьФорму("ФормаДокументаУправляемая");
    ВидОперации = ФормаЗалога.Объект.ВидОперации;
    Имущество = ФормаЗалога.Объект.Имущество;
    ЗалогБилет = ФормаЗалога.Объект.ЗалоговыйБилет;    
    Дата = ФормаЗалога.Объект.Дата;
                   
      Символ = "#";
      ДлинаНаимВещи = Справочники.ЛМБ_ЗалоговыеВещи.ПустаяСсылка().Метаданные().ДлинаНаименования;
      ПолнНомерЗалога = СокрЛП(ЗалоговыйБилет.Код);
      ПрефиксЗалога = Лев(ПолнНомерЗалога,2);
      Для Каждого Строка из Имущество Цикл;

          
          Попытка
                    НомерЗалога = Число(Прав(ПолнНомерЗалога,СтрДлина(ПолнНомерЗалога)-2));
                Исключение
                    Сообщить("Не удалось получить номер (число) залога из номера Залог.билета - "+ПолнНомерЗалога,СтатусСообщения.Важное);
                    Продолжить;
                КонецПопытки;

                Вещь = Строка.Вещь;
                ВещьНаим = СокрЛП(Вещь.Наименование);
                Поз = Найти(ВещьНаим,Символ);
                
                Если Поз > 0 Тогда
                    Продолжить;
                КонецЕсли;
                    Артикул = ПрефиксЗалога+Формат(НомерЗалога, "ЧГ=0")+"/" +Строка.НомерСтроки + "-" +Строка(Формат((Год(Дата)), "ЧГ = ''"));
                    ВещьНаимНовая = Артикул+Символ + " ";
            КонецЦикла;
ПредставлениеВещи = Справочники.ЛМБ_ЗалоговыеВещи.СформироватьОписаниеНоменклатурыЗалоговойВещи(ЗалоговаяВещь, ВещьНаимНовая, УчетнаяПолитика);

НоменклатураОбъект = Справочники.Номенклатура.СоздатьЭлемент();
    
    НоменклатураОбъект.Родитель           = Родитель;
    НоменклатураОбъект.Артикул              = Артикул;
    НоменклатураОбъект.Наименование       =  ПредставлениеВещи;
    НоменклатураОбъект.НаименованиеПолное = НоменклатураОбъект.Наименование;
    НоменклатураОбъект.БазоваяЕдиницаИзмерения = ЕдиницаИзмерения;
    НоменклатураОбъект.СтавкаНДС               = ЛМБ_ТиповыеМетоды.ПолучитьЗначениеПоУмолчанию(ТекущийПользователь, "ОсновнаяСтавкаНДС");
    НоменклатураОбъект.НоменклатурнаяГруппа    = ЛМБ_ТиповыеМетоды.ПолучитьЗначениеПоУмолчанию(ТекущийПользователь, "ОсновнаяНоменклатурнаяГруппаЗалоговыхВещей");

Вот так это выглядит в обычных формах
Вообще, да, работает

Ну, я только учусь) А куда без ошибок и мудрых наставлений от более опытных
9 palsergeich
 
04.07.19
00:22
Попробую сванговать:
Параметры = Новый Структура;
    Параметры.Вставить("Ключ", СсылкаНаТотОбъектКоторыйТебеНадо);
    ФормаЗалога = ПолучитьФорму("Документ.ЛМБ_ОперацияПоЗалогу.Форма.ФормаДокументаУправляемая",параметры);
    ВидОперации = ФормаЗалога.Объект.ВидОперации;
    Имущество = ФормаЗалога.Объект.Имущество;
    ЗалогБилет = ФормаЗалога.Объект.ЗалоговыйБилет;    
    Дата = ФормаЗалога.Объект.Дата;
10 palsergeich
 
04.07.19
00:23
Это ты создаешь новый документ и заполняешь его?
11 Kristian
 
04.07.19
00:25
Я создаю номенклатуру, и заполняю ее с данными от документа Операция по залогу
12 palsergeich
 
04.07.19
00:25
Если да, то
    ФормаЗалога = ПолучитьФорму("Документ.ЛМБ_ОперацияПоЗалогу.Форма.ФормаДокументаУправляемая");
    ВидОперации = ФормаЗалога.Объект.ВидОперации;
    Имущество = ФормаЗалога.Объект.Имущество;
    ЗалогБилет = ФормаЗалога.Объект.ЗалоговыйБилет;    
    Дата = ФормаЗалога.Объект.Дата;
но это будет только начало пути)))
13 palsergeich
 
04.07.19
00:26
(11) А где ты получаешь форму конкретного документа Операция по залогу?
формаЗалога = Документы.ЛМБ_ОперацияПоЗалогу.ПолучитьФорму("ФормаДокументаУправляемая");
Здесь я этого не вижу, по факту будет открыта форма нового документа
14 palsergeich
 
04.07.19
00:26
(8) И здесь тоже
15 palsergeich
 
04.07.19
00:27
(11) тогда смотри (9)
Твоя задача понять где эта самая СсылкаНаТотОбъектКоторыйТебеНадо
16 Kristian
 
04.07.19
00:31
О как, надо поглядеть
17 palsergeich
 
04.07.19
00:47
Но после того как сделаешь в лоб - обязательно перепиши на запрос.
Оставлять в таком виде - получать форму, из нее реквизиты и потом не открывать - это не гуд.