Имя: Пароль:
1C
1С v8
Программное открытие обработки 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) сейчас в платформе навтыки множество мест, не зная которых, можно долго "отлаживать"
надо читать описание платформы...
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn