Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 июл 2021, 05:53

Расшифровка

Автор Ивашка, 15 ноя 2020, 20:55

0 Пользователей и 1 гость просматривают эту тему.

Ивашка

Приветствую, создал внешний отчет "Незаполненные сотрудники", в отчете есть колонки Вход и Выход и по нажатию на ячейку колонок вход или выход, открывать форму регистра Данные КПП с текущей записью, для возможности ее заполнить в ручную.
Создал форму отчета и написал обработку расшифровки, но что то выводит пустую форму записи, в чём ошибка?
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)

СтандартнаяОбработка = Ложь;     
    ЗначениеВЯчейке = ПолучитьЗначениеВЯчейке(Расшифровка,"ПериодВхода");
ОткрытьФорму("РегистрСведений.ДанныеКПП.ФормаЗаписи", Новый Структура("Ключ",ЗначениеВЯчейке));

КонецПроцедуры

&НаСервере
Функция ПолучитьЗначениеВЯчейке(Расшифровка,ИмяПоля)
   
    РасшифровкаДанные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
ПоляРасшифроки = РасшифровкаДанные.Элементы.Получить(Расшифровка).ПолучитьПоля();

НайденноеПоле = ПоляРасшифроки.Найти(ИмяПоля);
Если НайденноеПоле = Неопределено Тогда
Возврат Неопределено;
Иначе
Возврат НайденноеПоле.Значение;
КонецЕсли;

КонецФункции

LexaK

ключ записи, это более сложная конструкция, чем просто какое-то значение, как правила структура с кучей полей
вот какой-то пример как это вызывается

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

Ивашка

А параметр записи что это?
у Меня не работает позиционирование. И не пойму почему в ключе записи появляется период как пустая дата и регистратор как неопределено. в чем ошибка?
Добавлено: 16 ноя 2020, 11:42


&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)

СтандартнаяОбработка = Ложь; 
КлючЗаписиРегистра = ПолучитьЗначениеВЯчейке(Расшифровка);

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

КонецПроцедуры

&НаСервере
Функция ПолучитьЗначениеВЯчейке(знач Расшифровка)
   
РасшифровкаДанные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);

Если РасшифровкаДанные.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ФизическоеЛицо" Тогда
Возврат Неопределено;
КонецЕсли;

//найдём первое значение в строке
Пока РасшифровкаДанные.Элементы[Расшифровка].ПолучитьПоля()[0].Поле <> "ПериодВхода" Цикл
    Расшифровка = Расшифровка - 1;
КонецЦикла;

Значение = Новый Структура("ПериодВхода,ПериодВыхода,ФизическоеЛицо",
РасшифровкаДанные.Элементы[Расшифровка].ПолучитьПоля()[0].Значение,
РасшифровкаДанные.Элементы[Расшифровка+1].ПолучитьПоля()[0].Значение);
       
//найдём физлицо 
Пока Число(Расшифровка) > 0 Цикл
    Расшифровка = Расшифровка - 1;
Попытка
ПараметрыПоля = РасшифровкаДанные.Элементы[Расшифровка].ПолучитьПоля()[0];
Исключение
Продолжить;
КонецПопытки;
   
    Если ПараметрыПоля.Поле = "ФизическоеЛицо" Тогда
        Значение.ФизическоеЛицо = ПараметрыПоля.Значение;
        Прервать;
    КонецЕсли;
КонецЦикла;

Возврат РегистрыСведений.ДанныеКПП.СоздатьКлючЗаписи(Значение);
     
   
КонецФункции


записал так, но ничего не меняется(((

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск