Имя: Пароль:
1C
 
Открыть форму записи в регистр сведений программно
0 tatoshka0403
 
18.05.18
12:46
&НаКлиенте
Процедура НазначитьЯчейку(Команда)
    Пустышка=Пустышка();
    КлючЗаписи = Новый Структура;
    КлючЗаписи.Вставить("Номенклатура", Номенклатура);
    КлючЗаписи.Вставить("Склад", Склад);
    КлючЗаписи.Вставить("Помещение",Пустышка.Помещение);
    КлючЗаписи.Вставить("Ячейка",Пустышка.Ячейка );
    
    МассивКлюча = Новый Массив;
    МассивКлюча.Добавить(КлючЗаписи);
    
    КлючЗаписиРегистра = Новый("РегистрСведенийКлючЗаписи.РазмещениеНоменклатурыПоСкладскимЯчейкам", МассивКлюча);
    
    П = Новый Структура("Ключ", КлючЗаписиРегистра);
    
    ОткрытьФорму("РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам.ФормаЗаписи", П);
КонецПроцедуры


Выдает ошибку:
{Документ.ПриходныйОрдерНаТовары.Форма.ФормаДокумента.Форма(3047)}: Ошибка при вызове метода контекста (ОткрытьФорму)
   ОткрытьФорму("РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам.ФормаЗаписи", П);
по причине:
Объект не найден

Помогите решить.
1 Buster007
 
18.05.18
12:59
подозреваю, что нет такой записи.
а зачем ты передаешь Массив в параметры, когда там должна быть структура?
2 tatoshka0403
 
18.05.18
13:04
(1) ОткрытьФорму("РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам.ФормаЗаписи", П);

если убираю П то работает, но параметры не передает.

ОткрытьФорму("РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам.ФормаЗаписи", КлючЗаписи );

так тоже открывается но параметры не передает
3 Buster007
 
18.05.18
13:10
КлючЗаписиРегистра = Новый("РегистрСведенийКлючЗаписи.РазмещениеНоменклатурыПоСкладскимЯчейкам", КлючЗаписи);
так не работает?
4 ptiz
 
18.05.18
13:41
(0) "Объект не найден" - значит нет такой записи
5 ptiz
 
18.05.18
13:44
А в типовых есть удобная функция ОткрытьФормуЗаписиРегистраСведенийПоОтбору()
6 Мандалай
 
18.05.18
13:53
Установи нормальное имя переменной, а не П.
7 Nikoss
 
18.05.18
13:56
(4) запись 100% есть, но такой код как в (0) выдает "Объект не найден"
8 Nikoss
 
18.05.18
13:57
(6) чем тебе имя не нравится?) Так весь СП написан
9 tatoshka0403
 
18.05.18
14:15
(5) пишет нет такой
10 Мандалай
 
18.05.18
14:24
Попробуй глобальным поиском, может товарищ говорит про БСП
11 ptiz
 
18.05.18
14:35
(7) " запись 100% есть" - тогда не было бы ругани
Проверь еще раз отбор и типы значений
12 ptiz
 
18.05.18
14:36
А если регистр периодический, то должен быть и период в отборе.
13 Nikoss
 
18.05.18
14:43
(12) все перепроверил
я думаю, если у меня как и у ТС одно и тоже, на разных база, то дело именно в коде
14 tatoshka0403
 
18.05.18
14:44
(12) РС не периодический
15 tatoshka0403
 
18.05.18
14:46
Мне открыть открыть форму создания новой записи независимого регистра сведений, с переданными в него реквизитами.
16 Nikoss
 
18.05.18
14:46
(15) получитьФорму -> заполнитьРеквизиты
на сервер
Открыть форму
17 Nikoss
 
18.05.18
14:47
чеж сразу не сказал?
18 Nikoss
 
18.05.18
14:47
(17) к (15)
19 ptiz
 
18.05.18
15:19
(15) Тогда поменять:
П = Новый Структура("ЗначенияЗаполнения", КлючЗаписи);

Это если у измерений включена галка "Заполнять из данных заполнения"".

Если нет, то тоже просто:
Форма = ПолучитьФорму("РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам.ФормаЗаписи");
ЗаполнитьЗначенияСвойств(Форма, КлючЗаписи);
Форма.Открыть();

p.s. КлючЗаписи - как у тебя, т.е. структура
20 Nikoss
 
22.05.18
07:58
(20) и всёже интересно, почему не работает код из (0), в интернете фигурирует только такой
21 FIXXXL
 
22.05.18
08:31
(19) второй способ не заполнит Ключ, возможны интересные фокусы :)
22 ptiz
 
22.05.18
08:56
(21) Можно подробнее? И как правильно в том случае, если не включено "Заполнять из данных заполнения"?
23 FIXXXL
 
22.05.18
12:11
(22) если не заполнен параметр Ключ, форма(платформа) не понимает, что это существующая запись и ведет себя неадекватно, данные не сохраняет с первого раза и т.п.
ну как если при открытии формы документа вместо Ключа-ссылки просто набить форму данными по существующему документу :) только в случае документа получим копию, а в случае РС копии не допустимы
2 + 2 = 3.9999999999999999999999999999999...