Имя: Пароль:
1C
1С v8
Своеобразность открытия внешних обработок 8.2 толстый клиент
0 ares
 
20.04.12
16:32
Есть внешняя обработка в общем модуле которой прописана экспортная процедура, которая прописана как внешняя обработка заполнения табличных частей

Перем мОбъект Экспорт;
Перем мИмяТабличнойЧасти Экспорт;

Процедура Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) Экспорт
   
   мОбъект = Объект;
   мИмяТабличнойЧасти = ИмяТабличнойЧасти;
   
   Форма = ЭтотОбъект.ПолучитьФорму("Форма");
   Форма.ОткрытьМодально();
   
КонецПроцедуры // ЗаполнитьТовары()

Проблема : если обратиться к этой процедуре открыв обработку, через файл меню т.е. напрямую то
Строка Форма = ЭтотОбъект.ПолучитьФорму("Форма"); отрабаьтывает нормально в переменную Форма попадает значение.

если использовать механиз создания временной внешней обработки (механизм внешних дополнительных обработок для заполнения табличных частей), то обработка создается, но строка
Форма = ЭтотОбъект.ПолучитьФорму("Форма");   возвращает неопределено !!!!

Я уже права в системем смотрел, не могу понять почему ? Может дело в правах учеток сети, хотя на папку где создаются временные обработки у меня полных контроль.

Где может быть собака зарыта, образно выражаясь ?
1 sanja26
 
20.04.12
16:39
Без Этот объект не отрабатывает?
2 Hmster
 
20.04.12
16:50
форма управляемая ?
3 experimentator76
 
20.04.12
17:13
внешние управляемые не любят открываться в толстом
4 ares
 
23.04.12
08:17
(1) Тоже самое
(2)(3) Нет не управляемая
5 ares
 
25.04.12
10:19
Написал в 1С, пока молчат ((
6 Лоботряс
 
25.04.12
10:23
А ЭтотОбъект что возвращает?
7 aspirant
 
25.04.12
10:27
Процедура Инициализировать (Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
   сообщить(ОбъектДокумент);
   ДатаВыпуска        = Объект.Дата;
   Форма            = ЭтотОбъект.ПолучитьФорму("форма");
   Форма.ОткрытьМодально();    
   Режим = РежимДиалогаВопрос.ДаНет;
   Текст = "Внести новые данные в табличную часть (предварительно табличная часть будет очищена)?";
   Ответ = Вопрос(Текст, Режим, 0);
   Если Ответ = КодВозвратаДиалога.Да Тогда
       Объект[ИмяТабличнойЧасти].Загрузить(Товары.Выгрузить());
   КонецЕсли;

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


У меня вот такой код (по-моему ничем от твоего не отличается) - все работает. Обработок очень много (все НЕ УФ) - все так работают
8 ares
 
25.04.12
12:27
(6)(7) ЭтотОбъект - возвращает
ЭтотОбъект    ВнешняяОбработкаОбъект.ЗаполнениеТЧПередачаМатериаловВЭксплуатацию    ВнешняяОбработкаОбъект.ЗаполнениеТЧПередачаМатериаловВЭксплуатацию

ИспользуемоеИмяФайла    "C:\Users\ХХХХХХХ\Desktop\Заполнение табличной части передачи материалов в эксплуатацию.epf"    Строка

На локальной работает, в серверной НЕТ.
9 acsent
 
25.04.12
12:29
не может быть
10 ares
 
25.04.12
12:29
(8)+ а может нужно эту обработочку на сервере хранить СУБД ?
11 ares
 
25.04.12
12:30
(9) чТО ИМЕННО ?
12 aspirant
 
25.04.12
12:42
(10) у меня храняться на сетевом диске (ваще на другом сервере), но все равно открывается в 1С через внешние обработки
13 ares
 
25.04.12
12:55
(12)От создает обработку на локальном диске пользователя, это все понятно.
Но факт есть факт, возвращает неопределено. тут что то с правами, как мне кажется.
14 aspirant
 
25.04.12
13:09
а какой тип возвращает?
Тип объекта совпадает с типом документа, для которго создана обработка?
15 ares
 
25.04.12
13:15
(14) А при чем тут это, он форму ЭтотОбъект не видит, не от что не видет, не может получить ! Привязка обработки к объекту, это уже иное немного.
16 Лоботряс
 
25.04.12
13:18
Версии обработок которые открываешь через меню Файл и встроенная в спр Внешних обработок одинаковые?
17 aspirant
 
25.04.12
13:19
(15) да, я чета затупил. сейчас тоже делаю, и в своем соку варюсь.
18 ares
 
25.04.12
13:24
(16) Конечно, она у меня одна
(17) А у тебя на серверной форма открывается ?
19 ares
 
25.04.12
13:29
Еще раз перечитал рекомендации ничего дельного не нашел
Обработка для заполнения ТЧ объектов
Для обработок заполнения ТЧ необходимо указывать внешнюю обработку (файл на диске, с расширением epf), список объектов и их ТЧ, для которых необходимо использовать данную обработку.

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

Перед открытием формы объекта в командных панелях табличных полей (источником данных для которых является табличная часть объекта), которым соответствуют определенные строки  в справочнике ВПФО, программно добавляются пункты в подменю "Заполнить" (если подменю "Заполнить" отсутствует на командной панели, оно создается).

При нажатии на созданную перед открытием кнопку подменю "Заполнить" происходит сохранение соответствующей обработки на диск во временный файл,  для сохраненной внешней обработки вызывается процедура:

Копировать в буфер обмена
Инициализировать (Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта)


где:

Объект – ДокументОбъект, СправочникОбъект. Откуда был произведен вызов процедуры заполнения внешней обработки;
ИмяТабличнойЧасти  – Строка. Имя табличной части, для которой вызвана обработка;
ТабличноеПолеОбъекта  – Элемент формы: Табличное поле. Табличное поле формы, для которого вызвана обработка.
Наличие экспортной процедуры "Инициализировать()"  в модуле объекта обработки с видом "Заполнение табличных частей" обязательно. В теле данной процедуры должен располагаться программный код, заполняющий табличную часть в соответствии с назначением обработки.

Обработка так же может иметь в своем составе макет "Параметры_Авторегистрации",  используемый для автоматического заполнения принадлежности печатной формы в справочнике "Внешние обработки". Макет должен состоять из 2-х колонок – "полное имя объекта" и "имя табличной части".

Пример макета Параметры_Авторегистрации:
20 ares
 
25.04.12
13:37
Просто вываливается ошибка :
Заполнение ТЧ не произведено!
Значение не является значением объектного типа (ОткрытьМодально)
21 ares
 
25.04.12
13:40
А внешние печатные формы работают, я уже ХЗ куда копать ?
22 acsent
 
25.04.12
13:44
может у тебя в модуле формы какая хрень?
23 Serg_1960
 
25.04.12
13:56
(0) Возник однажды вопрос "Как часто обновляется кэш?". После того, как внес изменения во внешнюю обработку, а открыть исхитрился предыдущую версию (без этих изменений)
24 ares
 
25.04.12
14:51
Посмотрел остальные обработки заполнения ТЧ, везде где есть конструкция в модуле обрабтки получения формы, пишет ошибку, там где ее нет, а сразу код  заполнения ТЧ все отрабатывает хорошо.

(23)Кеш был бы актуален для одной обработки, а если решь о всех, то дело не в этом, хотя........ очистил я все кеши на клиенте..... эффект тот же ((
25 ares
 
25.04.12
14:52
(22) А у тебя на серверной БД работает ?