Имя: Пароль:
1C
 
УФ. Программно открыть форму нового скопированного документа
0 DTXyupyup
 
08.09.15
16:13
Пытался так:
ОткрытьФорму("Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокументаОбщая", Новый Структура("Основание", ПТУ), ЭтаФорма);

Падает при создании на сервере. Есть подозрении, что это баг БП3. Хелп
1 DexterMorgan
 
08.09.15
16:17
Новый Структура("ЗначениеКопирования", ПТУ)
2 DTXyupyup
 
08.09.15
16:20
(1) Спасибо!
3 DexterMorgan
 
08.09.15
16:20
тип ПТУ не входит в список типов, которым может являться основание
4 DTXyupyup
 
08.09.15
16:32
(3) Да, это я попутал. Но там проблема в другом была. В ПриСозданииНаСервере вид операции был "Товары", а в если его не было. В итог вываливалась ошибка выхода индекса за границу на последней строчке:
СписокТабличныхЧастей = Новый СписокЗначений;
    Если Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия") Тогда
        СписокТабличныхЧастей.Добавить("Товары", "Товары");
        Если НЕ ЭтоКомиссия Тогда
            СписокТабличныхЧастей.Добавить("Услуги", "Услуги");
            СписокТабличныхЧастей.Добавить("АгентскиеУслуги", "АгентскиеУслуги");
        КонецЕсли;
        СписокТабличныхЧастей.Добавить("ВозвратнаяТара", "ВозвратнаяТара");
    ИначеЕсли Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеТоваровУслуг.ВПереработку") Тогда
        СписокТабличныхЧастей.Добавить("Товары", "Товары");
    ИначеЕсли Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеТоваровУслуг.Оборудование") Тогда
        СписокТабличныхЧастей.Добавить("Оборудование", "Оборудование");
        СписокТабличныхЧастей.Добавить("Товары", "Товары");
        Если НЕ ЭтоКомиссия Тогда
            СписокТабличныхЧастей.Добавить("Услуги", "Услуги");
        КонецЕсли;
        СписокТабличныхЧастей.Добавить("ВозвратнаяТара", "ВозвратнаяТара");
    ИначеЕсли Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеТоваровУслуг.ОбъектыСтроительства") Тогда
        СписокТабличныхЧастей.Добавить("ОбъектыСтроительства", "ОбъектыСтроительства");
        Если НЕ ЭтоКомиссия Тогда
            СписокТабличныхЧастей.Добавить("Услуги", "Услуги");
        КонецЕсли;
    КонецЕсли;
    
    АктивизироватьТабличнуюЧасть = ОбщегоНазначенияБПВызовСервера.ПолучитьПервуюНепустуюВидимуюТабличнуюЧасть(
        ЭтаФорма, СписокТабличныхЧастей);
    Если НЕ ЗначениеЗаполнено(АктивизироватьТабличнуюЧасть) Тогда
        // Если все табличные части пустые, то функция ПолучитьПервуюНепустуюВидимуюТабличнуюЧасть()
        // вернет пустую строку, активизируем при этом первую в списке табличную часть,
        // чтобы не оставались текущими табличные части на скрытых закладках.
        АктивизироватьТабличнуюЧасть = СписокТабличныхЧастей[0].Значение;
    КонецЕсли;

5 DTXyupyup
 
08.09.15
16:40
А при программном копировании, можно потом ещё обработкуЗаполнения вызвать? Чтобы заполнились Дата и Номер?
Пробовал в параметры подсовывать "Основание" и "ЗначенияЗаполнения". Не удалось.
6 DTXyupyup
 
08.09.15
16:41
Или придется сначала форму получать, заполнять, а только потом открывать?
7 Nuobu
 
08.09.15
16:55
(6) ОткрытьФорму("Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокументаОбщая", Новый Структура("ЗначениеЗАполнения", Новый Структура("Основание", ПТУ)), ЭтаФорма);
8 DTXyupyup
 
08.09.15
17:10
там ведь "значениЯзаполнения"?

Падает как в (4)

Вот так ещё попробовал:
ОткрытьФорму("Документ.ПоступлениеТоваровУслуг.Форма."+Форма, Новый Структура("ЗначениеКопирования, ЗначенияЗаполнения", ПТУ, Новый Структура("Основание", Новый Структура("Дата,Номер", Дата, Номер))), ЭтаФорма);
            
Не работает. Видимо, придётся сначала форму получать