Имя: Пароль:
1C
1C 7.7
v7: Контекст
0 Широкий
 
18.12.12
18:52
Из документа открываю внешнюю обработку, при этом передается контекст документа.
Далее процедуры в самое обработке - изменяю документ.

Процедура Загрузить()      
  КонтДокумента=Форма.Параметр.Получить("Контекст");
  КонтДокумента.УдалитьСтроки();
КонецПроцедуры    
                       
Процедура ПриОткрытии()
  КонтДокумента=Форма.Параметр.Получить("Контекст");
  КонтДокумента.УдалитьСтроки();
КонецПроцедуры

В "ПриОткрытии" отрабатывает нормально, а вот в "Загрузить" вываливает сообщение "Нет возможности удалить строку!"

Почему?
1 zak555
 
18.12.12
18:53
ТипЗначениеяСтр(КонтДокумента) в Загрузить что ?
2 Широкий
 
18.12.12
18:56
ТипЗначенияСтр(КонтДокумента)  = "ГрупповойКонтекст"
ТипЗначения(КонтДокумента)  = 100
и там и там
3 КонецЦикла
 
18.12.12
19:10
Модально открывай
счас убегаю, некогда думоть
4 zak555
 
18.12.12
19:23
Объяви переменную КонтДокумента как глобальную модуля обработки и убери из процедуры Загрузить()
КонтДокумента=Форма.Параметр.Получить("Контекст");
5 Широкий
 
18.12.12
19:31
(4) Попробовал - нет
6 zak555
 
18.12.12
19:35
так не работает :

Перем КонтДокумента;

Процедура Загрузить()      
 
  КонтДокумента.УдалитьСтроки();
КонецПроцедуры    
                       
Процедура ПриОткрытии()
  КонтДокумента=Форма.Параметр.Получить("Контекст");
  КонтДокумента.УдалитьСтроки();
КонецПроцедуры
7 Широкий
 
18.12.12
19:38
(6) Нет
8 zak555
 
18.12.12
19:48
а так ?

Перем КонтДокумента;

Процедура Загрузить()      
 
  КонтДокумента.УдалитьСтроки();
КонецПроцедуры    
                       
Процедура ПриОткрытии()
  КонтДокумента=Форма.Параметр.Получить("Контекст");

КонецПроцедуры
9 Широкий
 
18.12.12
20:02
Тоже самое
10 zak555
 
18.12.12
20:03
там какая была хитрость с контекстом
11 SED
 
18.12.12
20:04
типа чтото жестко Док= СоздатьОбъект("Ч");
Пометить на удаление, или что в системе проставлено непосредственное удаление???
12 zak555
 
18.12.12
20:10
(11) я так понял ему нужно интерактивно что-то добавить и удалить из табличной части
13 zak555
 
18.12.12
20:10
(0) этот документ записан ?
14 Широкий
 
18.12.12
20:11
(12) Да
(13) Да
15 Стрелок
 
18.12.12
20:20
а не меняет ли вид параметр формы где то внутри? автор скажи ка что в отладчике пишет на КонтДокумента.Вид()?

И ещё покажи как форпму обработки открываешь? Сдаётся мне я помню эту фичу - нельзя напрямую контекст передавать в некоторых случаях. Именнот для этого в типовых есть глобальная функция глВзятьКонтекст
16 Vovik
 
18.12.12
20:21
Тогда реквизит ТекДок

Док=создатьОбъект("Документ");
Док.Найти(ТекДок);
Док.УдалитьСтроки();
17 Гинзбург Олег Валнти
 
18.12.12
20:22
при открытии формы не обязательно передача контекста, и так все переменные, форма и контекст будут доступны - фича стара
18 КонецЦикла
 
18.12.12
20:23
(16) Док может быть не записан :)
(0) Так пробовал модально открывать?
Если такой вариант устроит, то он работать будет
19 ADirks
 
18.12.12
20:26
(0) FormEx или 1С++ не пробовал загрузить?
20 Широкий
 
18.12.12
20:27
(15) Нет,.. к реквизитам шапки документа обращение проходит..
А вот к табл.части я почему-то могу обратиться только в "ПриОткрытии" обработки
21 КонецЦикла
 
18.12.12
20:27
(19) Да, обычно, кстати тожы :)
22 Широкий
 
18.12.12
20:28
(20) Конфа ТиС - штатное открытие внешней печатной формы
(19) Пытаюсь пока штатными методами сделать.
23 Стрелок
 
18.12.12
20:29
(20) попробуй через глобальник получить контекст вот так

// Функция возвращает переданное значение параметра (для получения Контекста)
Функция глВзятьКонтекст(Конт) Экспорт
   Возврат Конт;
КонецФункции


Парам=глВзятьКонтекст(Контекст);
   ОткрытьФорму("Обработка.Моя",Парам);
24 КонецЦикла
 
18.12.12
20:29
Доктор, почему меня все игнорируют...

(23) Не выйдет
25 Широкий
 
18.12.12
20:30
(23) В типовых так и реализован вызов обработок (я ипользую типовой механизм)
26 Стрелок
 
18.12.12
20:30
вот помню что я задавал когда то давно этот вопрос

Для чего нужна промежуточная функция "глВзятьКонтекст()"?
27 Гинзбург Олег Валнти
 
18.12.12
20:30
в тисе есть зачудительная функция типа "можнооткрыть" или как то так
30 ADirks
 
18.12.12
20:33
атож!!!
31 Широкий
 
18.12.12
20:34
(18) Модально кстати работает.. неожиданно
32 Стрелок
 
18.12.12
20:34
ёмко
33 Широкий
 
18.12.12
20:34
+31 Но конфу править уж очень не хочется
34 Гинзбург Олег Валнти
 
18.12.12
20:34
еще пит писовал как к тч не записанного добираться
35 Стрелок
 
18.12.12
20:34
(31) а чего неожиданного? я подозревая что теряется контекст то. вызова теряется контекст
36 volfy
 
18.12.12
20:39
(1) зак я смотрю ты тут один из самых бошковитых)) какой у тебя стаж ?)
37 КонецЦикла
 
18.12.12
20:40
(31) :)
38 ADirks
 
18.12.12
20:41
модератор, почто удалил называние меня дураком? я ж ведь согласился.
39 КонецЦикла
 
18.12.12
20:42
(38) А я удалил ругательство
Некрасиво
40 Гинзбург Олег Валнти
 
18.12.12
20:43
(39) ну бульбаши тут еще будут осуждать красоту русского языка ))
41 ADirks
 
18.12.12
20:43
(39) ну и что? зато прямо и честно.
42 Гинзбург Олег Валнти
 
18.12.12
20:44
(41) у вас там реально сгибень под 40 и далее ?
43 КонецЦикла
 
18.12.12
20:45
(40) Я русский
Но это неважно
44 Гинзбург Олег Валнти
 
18.12.12
20:46
(43) нифига, ты это мисте расскажи, что не из бульбашии ? ))
45 ADirks
 
18.12.12
20:47
(42) у меня щас за бортом -35, но местами было и -50
46 Широкий
 
18.12.12
20:47
Финт ушами .. е-мое
Открываю обработку-пустышку а там вызов рабоче обработки но модально - и конфу править не надо..

Процедура ПриОткрытии()          
   Параметры=СоздатьОбъект("СписокЗначений");
   Параметры.ДобавитьЗначение(Форма.Параметр.Получить("Контекст"), "Контекст");
   
   ОткрытьФормуМодально("Отчет",Параметры,КаталогИБ()+"ExtForms\PrnForms\ОбработкаТаблЧасти.ert");
   СтатусВозврата(0);
   Возврат;          
КонецПроцедуры
47 Гинзбург Олег Валнти
 
18.12.12
20:48
(45) как вы там существуете, у нас 27 - кажется небесная ось уже налетела не ожидая 21
48 Гинзбург Олег Валнти
 
18.12.12
20:50
(46) еще позырь на всяк случай (27) название процедуры наверняка переврал правдо
49 ADirks
 
18.12.12
20:50
(45) да нормально, одеваешься потеплей, и все дела
50 Гинзбург Олег Валнти
 
18.12.12
20:51
(49) главное исподнее не забыть
51 КонецЦикла
 
18.12.12
20:52
(46) Молодец
52 Злопчинский
 
18.12.12
22:12
как-то смутно.. если формекс загружен по идее все должно получиться с ТЧ безо всяких модалей?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn