Проблемы с открытием формы записи регистра сведений

1. GinGitsune 06.06.23 14:23 Сейчас в теме
Добрый день.
8.3.19.1726 БП 3.0.137.39

Хочу прикрутить открытие формы записи регистра (регистр сведений в расширении) через команду, которая размещена в группе "Панель навигации формы.Важное"

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

	КодДС =""; ИННДопСвойства = "";  СпрСсылка ="";
	ПроверитьСоздатьНастройки(ПараметрКоманды,СпрСсылка,КодДС,ИННДопСвойства);
	
	СтруктураКлючаЗаписи = Новый Структура();
	СтруктураКлючаЗаписи.Вставить("Период", ТекущаяДата());
	СтруктураКлючаЗаписи.Вставить("Пользователь", ПараметрКоманды);
	СтруктураКлючаЗаписи.Вставить("КодДС", КодДС);
	СтруктураКлючаЗаписи.Вставить("ИННДопСвойства", ИННДопСвойства);
	СтруктураКлючаЗаписи.Вставить("Доставка", "");
	СтруктураКлючаЗаписи.Вставить("Курьер", "");
	СтруктураКлючаЗаписи.Вставить("Менеджер", "");
	СтруктураКлючаЗаписи.Вставить("КодДоПП", "");
	СтруктураКлючаЗаписи.Вставить("КодНовыйПП", "");
	
	
	МассивКлюча = Новый Массив;
	МассивКлюча.Добавить(СтруктураКлючаЗаписи);
	
	КлючЗаписи = Новый("РегистрСведенийКлючЗаписи.ДопСвойстваКонтрагента", МассивКлюча); 
	
		
	Если НЕ КлючЗаписи.Пустой() Тогда

		ПараметрыФормы = Новый Структура();
		ПараметрыФормы.Вставить("Ключ", КлючЗаписи);
		ПараметрыФормы.Вставить("Владелец",ПараметрКоманды);

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

	КонецЕсли;	
		
КонецПроцедуры

    
&НаСервере

Процедура ПроверитьСоздатьНастройки(Пользователь, СпрСсылка = "", КодДС = "", ИННДопСвойства = "") 
	
	СпрСсылка = Пользователь.Ссылка;
  	ИННДопСвойства = Пользователь.ИНН + "\" + Пользователь.КПП;
	КодДС = Пользователь.Код;
	МенеджерЗаписи = РегистрыСведений.ДопСвойстваКонтрагента.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.Пользователь = Пользователь;
    МенеджерЗаписи.Период = ТекущаяДата();
    МенеджерЗаписи.ИННДопСвойства = Пользователь.ИНН + "\" + Пользователь.КПП;
  	МенеджерЗаписи.Прочитать();
    Если Не МенеджерЗаписи.Выбран() Тогда
       МенеджерЗаписи.Пользователь = Пользователь;
       МенеджерЗаписи.Период = ТекущаяДата();
       МенеджерЗаписи.ИННДопСвойства = Пользователь.ИНН + "\" + Пользователь.КПП;
    КонецЕсли; 
    
КонецПроцедуры
Показать


На выходе получаю:

Объект не найден
{ДополнительнаяНастройка_БезНДС РегистрСведений.ДопСвойстваКонтрагента.Команда.КомандаОткрытияФормуЗаписиДопСвойства.МодульКоманды(33)}: ОткрытьФорму("ОбщаяФорма.ФормаЗаписиДС", ПараметрыФормы);

по причине:
Объект не найден

Я в полной растерянности как это победить.

При этом команда открытия формы написанная из модуля формы списка справочника контрагенты работает отлично

&НаКлиенте
Процедура НажатиеКнопкиДС(Команда) 
	ПараметрыФормы = Новый Структура;
	Если Элементы.Список.ТекущиеДанные <> Неопределено Тогда
		
               Если Элементы.Список.ТекущиеДанные.ЭтоГруппа Тогда  ПоказатьПредупреждение(,"Выберите котрагента!"); 
                          Возврат; 
                КонецЕсли;

		ПараметрыФормы.Вставить("Владелец", Элементы.Список.ТекущиеДанные);   
		ОткрытьФорму("ОбщаяФорма.ФормаЗаписиДС", ПараметрыФормы, ЭтаФорма, , , );    
	КонецЕсли;
	
КонецПроцедуры
Показать



Подскажите, пожалуйста, где я ошибаюсь? И возможно ли это вообще?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ImHunter 327 06.06.23 14:35 Сейчас в теме
(1) Ну первое. Почему ключ по массиву создается?...
КлючЗаписи = Новый("РегистрСведенийКлючЗаписи.ДопСвойстваКонтрагента", МассивКлюча); 

Просто ведь по Структуре должно быть.

Второе. В ключе период задается текущей датой:
СтруктураКлючаЗаписи.Вставить("Период", ТекущаяДата());

Т.е., существующую запись вы так никогда не откроете.
3. GinGitsune 06.06.23 14:54 Сейчас в теме
(2) Да, с массивом - это я что-то знатно слажала.
Но как мне передать период, чтобы выдало последнюю действующую запись...
ПолучитьПоследнее?
4. пользователь 06.06.23 15:00
Сообщение было скрыто модератором.
...
5. пользователь 06.06.23 15:02
Сообщение было скрыто модератором.
...
6. GinGitsune 06.06.23 15:42 Сейчас в теме
(5) Пользователем в регистре называется контрагент (регистр писала не я - вопрос псевдонимов не ко мне).
А менеджер для получения данных для ключа (возможно это и не правильно)
7. user1826630 06.06.23 16:13 Сейчас в теме
(6)
А менеджер для получения данных для ключа (возможно это и не правильно)
Можно увидеть в твоем коде - где конкретно происходит "получение данных для ключа" после вот этого
МенеджерЗаписи.Прочитать();
8. GinGitsune 06.06.23 16:19 Сейчас в теме
(7)
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

    КодДС =""; ИННДопСвойства = "";  СпрСсылка ="";
    ПроверитьСоздатьНастройки(ПараметрКоманды,СпрСсылка,КодДС,ИННДопСвойства);


Вот сюда я их отправляю. отладчиком прошла - все проходит корректно.
Строго говоря, я уже добралась до ПриОткрытии в самой общей форме (оказывается она жестко привязана к открытию через форму списка)
9. user1826630 06.06.23 16:32 Сейчас в теме
(8) Я разве спросил про это? Я спросил про МенеджерЗаписи, который вообще ничего не делает, окромя бесполезного Чтения.
Само собой - любые бесполезные действия никогда не выдают ошибок. Можно радоваться, да?
GinGitsune; +1 Ответить
10. GinGitsune 06.06.23 16:47 Сейчас в теме
(9) а ведь и правда - ничего (только модуль за***ла)
надо все на свежую голову перепройти и переписать

Спасибо. Я мастер творить очевидную дичь.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот