Имя: Пароль:
1C
1С v8
Альфа авто заполнение ТЧ внешней обработкой
0 Кремень
 
21.04.14
11:23
Добрый день, в альфа авто есть справочник внешняя печатная форма, в ней можно выбрать вид, Заполнение Табличной части, но вот какая функция должна быть в моей внешней обработке и что она должна вернуть не знаю, если кто знает подскажите. Отладчиком я дошел до защищенной функции - "зфКоманднаяПанельТоварыЗаполнение", что в ней происходит - загадка...
1 Кремень
 
21.04.14
11:36
в пятницу пробовал так же как в УПП сделать, не вышло, сейчас еще раз попробую, может упустил что...
2 mrFreeman
 
21.04.14
11:46
(0) декомпилируй cf-ник и посмотри, что там происходит
3 Кремень
 
21.04.14
12:29
(2)угу

вдруг кому надо будет

    ИначеЕсли Найти(ИмяПодменю, "Внешняя") > 0 Тогда
        ТекстЗапроса = "ВЫБРАТЬ
        |    ВнешниеПечатныеФормы.ХранитьВоВнешнемФайле КАК ВоВнешнемФайле,
        |    ВнешниеПечатныеФормы.Хранилище             КАК Хранилище,
        |    ВнешниеПечатныеФормы.ПутьКВнешнемуФайлу    КАК ПутьКВнешнемуФайлу
        |ИЗ
        |    Справочник.ВнешниеПечатныеФормы КАК ВнешниеПечатныеФормы
        |ГДЕ
        |    ВнешниеПечатныеФормы.Код = &ИмяКнопки
        |    И ВнешниеПечатныеФормы.ЭтоГруппа = ЛОЖЬ
        |    И ВнешниеПечатныеФормы.ВидОбработки = &ВидОбработки";

        ЗапросПоВнешнимОбработкамЗаполнения = Новый Запрос(ТекстЗапроса);
        ЗапросПоВнешнимОбработкамЗаполнения.УстановитьПараметр("ИмяКнопки", СтрЗаменить(ИмяПодменю, "Внешняя", ""));
        ЗапросПоВнешнимОбработкамЗаполнения.УстановитьПараметр("ВидОбработки", Перечисления.ВидыВнешнихОбработок.ЗаполнениеТабличнойЧасти);
        Выборка = ЗапросПоВнешнимОбработкамЗаполнения.Выполнить().Выбрать();
        Если Выборка.Следующий() Тогда

            Если Выборка.ВоВнешнемФайле Тогда
                ПутьКФайлуОбработки = Выборка.ПутьКВнешнемуФайлу;
            Иначе
                ПутьКФайлуОбработки = ПолучитьИмяВременногоФайла(".epf");



                Попытка
                    Выборка.Хранилище.Получить().Записать(ПутьКФайлуОбработки);
                Исключение
                    Предупреждение("Внешняя обработка заполнения не загружена в базу!");
                    Возврат Ложь;
                КонецПопытки;

            КонецЕсли;




            Попытка
                НоваяОбработкаЗаполнения = ВнешниеОбработки.Создать(ПутьКФайлуОбработки);
            Исключение
                Предупреждение("Внешняя обработка заполнения не найдена на диске!");
                Возврат Ложь;
            КонецПопытки;






            Попытка
                НоваяОбработкаЗаполнения.Заполнить(ЭтаФорма.ЭтотОбъект, Таблица, ЭтаФорма);
            Исключение

                Попытка
                    НоваяОбработкаЗаполнения.Заполнить(ЭтаФорма.ЭтотОбъект, Таблица);
                Исключение
                    Предупреждение("При вызове внешней обработки заполнения произошла ошибка! Возможно файл обработки содержит ошибки.");
                КонецПопытки;
            КонецПопытки;

        КонецЕсли;
        Возврат Истина;
4 lion11
 
21.04.14
12:45
Если вопрос про 5 версию, то во внешней обработке д.б. так:
Функция Заполнить(ДокументОбъект, ТабЧасть, ЭтаФорма) Экспорт
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн