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

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

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

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

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

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

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

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

    
&НаСервере

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


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

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

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

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

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

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

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



Подскажите, пожалуйста, где я ошибаюсь? И возможно ли это вообще?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ImHunter 333 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) а ведь и правда - ничего (только модуль за***ла)
надо все на свежую голову перепройти и переписать

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

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