|
Программное открытие обработки 1С | ☑ | ||
---|---|---|---|---|
0
1C_User_1992
20.04.17
✎
14:50
|
Добрый день. вопрос по управляемым формам. Впал в ступор.
1. Имеется обработка (не внешняя). 2. Имеется форма регистра сведений. 3. Создал кнопку на форме регистра, для открытия обработки с параметром "Имя файла". Команда кнопки: &НаКлиенте Процедура ВыполнитьВыгрузкуДанных(Команда) ПараметрыОткрытияОбработки=Новый Структура; ПараметрыОткрытияОбработки.Вставить("мФайлВыгрузки",Запись.ФайлВыгрузкиДанных); ОткрытьФорму("Обработка.ВыгрузкаДанных.Форма.УправляемаяФорма",ПараметрыОткрытияОбработки); КонецПроцедуры 4. В процедуре "ПриСозданииНаСервере" Если Параметры.Свойство("мФайлВыгрузки") Тогда ИмяФайлаДанных=Параметры.мФайлВыгрузки; // где ИмяФайлаДанных = реквизит формы обработки КонецЕсли; 5. Однако после процедуры ПриСозданииНаСервере выполняетя "ПриОткрытии", в которой реквизит "ИмяФайлаДанных" уже пустой. Подскажите в чем туплю? Или мне недостаточно открывать форму а нужно создавать объект обработки? |
|||
1
ГдеСобака Зарыта
20.04.17
✎
14:52
|
ИмяФайлаДанных реквизит формы или обработки?
|
|||
2
1C_User_1992
20.04.17
✎
14:56
|
(1) Реквизит формы.
Но пробовал записывать в реквизит обработки. то же самое. Смотрю в стандартных обработках - у них аналогичный механизм, все обрабатывает. |
|||
3
ГдеСобака Зарыта
20.04.17
✎
15:02
|
Должно работать. Может типы данных не совпадают или очищается где по дороге.
|
|||
4
dezss
20.04.17
✎
15:05
|
(0) так заполняй ПриОткрытии, а не ПриСозданииНаСервере
|
|||
5
1C_User_1992
20.04.17
✎
15:09
|
(4) При открытии &НаКлиенте, Параметры не видно
Ошибка где то 100%, попробовал в стандартных обработках, то же самое |
|||
6
dezss
20.04.17
✎
15:10
|
(5) Странно. СП вот что говорит
УправляемаяФорма (ManagedForm) Параметры (Parameters) Использование: Только чтение. Описание: Тип: ДанныеФормыСтруктура. Содержит коллекцию параметров формы. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер). |
|||
7
Вафель
20.04.17
✎
15:12
|
(6) при открытии все параметры уже пустые. раньше точно так было
|
|||
8
undertaker
20.04.17
✎
15:15
|
(6)
ВНИМАНИЕ! После вызова обработчика события ПриСозданииНаСервере все неключевые параметры формы удаляются из коллекции Параметры. СОВЕТ. Неключевые параметры формы, необходимые для дальнейшей работы, нужно сохранять в данных формы. (с) |
|||
9
dezss
20.04.17
✎
15:16
|
(7) спс...проверил...действительно пустые
|
|||
10
dezss
20.04.17
✎
15:17
|
(8) Это откуда? В СП такого не нашел.
|
|||
11
h-sp
20.04.17
✎
15:18
|
(9) да, но там параметре можно поставить галку Ключевой. И он никуда не денется. Удаляются неключевые.
|
|||
12
RomanYS
20.04.17
✎
15:18
|
(0) Всё должно работать. Если нет отладки на сервере сделай так
ПараметрыОткрытияОбработки.Вставить("мФайлВыгрузки",Запись.ФайлВыгрузкиДанных); Сообщить("Передано: "+Запись.ФайлВыгрузкиДанных); ОткрытьФорму("Обработка.ВыгрузкаДанных.Форма.УправляемаяФорма",ПараметрыОткрытияОбработки); КонецПроцедуры 4. В процедуре "ПриСозданииНаСервере" Если Параметры.Свойство("мФайлВыгрузки") Тогда ИмяФайлаДанных=Параметры.мФайлВыгрузки;// где ИмяФайлаДанных = реквизит формы обработки Сообщить("Получено: "+Параметры.мФайлВыгрузки); иначе Сообщить("Не получено."); КонецЕсли; |
|||
13
dezss
20.04.17
✎
15:20
|
А какой тип у Параметры.мФайлВыгрузки?
|
|||
14
1C_User_1992
20.04.17
✎
15:23
|
(12) Отладка на сервере включена.
Параметр передается в процедуру при создании на сервере корректно! Отладчиком смотрю: В последней строке процедуры при создании на сервере реквизит заполнен, нажимаю f11, в процедуре при открытии реквизит уже пустой. |
|||
15
undertaker
20.04.17
✎
15:23
|
(10) руководство разработчика, гл.7.4
https://its.1c.ru/db/v837doc#bookmark:dev:TI000000399 |
|||
16
Cyberhawk
20.04.17
✎
15:24
|
Пади у реквизита стоит флажок сохранения, вот он и восстанавливается пустым
|
|||
17
1C_User_1992
20.04.17
✎
15:24
|
Проблема решилась, форма сохраняла значения.
|
|||
18
Cyberhawk
20.04.17
✎
15:25
|
+(16) Покури события формы ПередЗагрузкойДанныхИзНастроекНаСервере
ПриЗагрузкеДанныхИзНастроекНаСервере |
|||
19
1C_User_1992
20.04.17
✎
15:25
|
(16) Да, спасибо, начал рыться так и было.)))
|
|||
20
1C_User_1992
20.04.17
✎
15:26
|
(16) При отладке такие вещи как сохранения значения не отловить?
|
|||
21
Cyberhawk
20.04.17
✎
15:28
|
(20) Что значит "отловить"?
|
|||
22
Cyberhawk
20.04.17
✎
15:29
|
Сохранение и загрузка осуществляются платформой, и только потом может быть еще определен прикладной код. Если прикладного кода нет, то и строчки, на которой отладчик может остановиться до смены значений, нет. Вернее она будет "КонецПроцедуры"
|
|||
23
1C_User_1992
20.04.17
✎
15:31
|
(22) То есть если не знать что есть такой механимз как сохранение значений, то отлаживай сколь угодно, причину не найти?
|
|||
24
dezss
20.04.17
✎
15:34
|
(17) тоже думал про это, но ведь ты писал, что и в реквизит объекта пытался запихнуть? или ты его тоже сохранял?
|
|||
25
Вафель
20.04.17
✎
15:34
|
(23) если не знать ничего, то и ничего не сделаешь.
Это однозначно |
|||
26
Cyberhawk
20.04.17
✎
15:34
|
(23) Если не знать, как отлаживать, то отладка тоже не заработает. Что тебя смущает?
|
|||
27
1C_User_1992
20.04.17
✎
15:35
|
(24) Да, он тоже сохранял.
|
|||
28
1C_User_1992
20.04.17
✎
15:38
|
(26) Просто к примеру. я знал базовые операции отладки (точки остановки, Шагнуть в/из/через, стек).
И при отладке своей ошибки не мог понять почему после конецпроцедуры реквизит стирается. То есть программно не увидеть фрагмент кода где происходит очистка. Сейчас снял галочки сохранения и все заработало, и получается хз где происходит очистка, это заложено в платформу эти вещи просто нужно знать. |
|||
29
dezss
20.04.17
✎
15:51
|
(28) многие вещи нужно просто знать...
Это и есть тот самый пресловутый опыт - сын ошибок трудных... И именно поэтому опытные специалисты ценятся выше... |
|||
30
1C_User_1992
21.04.17
✎
06:07
|
(29) Ну да. Не зря говорят нужно 10000 часов потратить чтобы стать специалистом в своем деле.
|
|||
31
FIXXXL
21.04.17
✎
08:25
|
(28) у тебя ж нет фрагметов кода, только галки стоят
что ты хотел увидеть? |
|||
32
1C_User_1992
21.04.17
✎
08:46
|
(31) это к тому что если не знать то отлаживая не понять!
|
|||
33
FIXXXL
21.04.17
✎
09:52
|
(32) сейчас в платформе навтыки множество мест, не зная которых, можно долго "отлаживать"
надо читать описание платформы... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |