Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 11:39

Справочник и регистр сведений

Автор Seolkin, 16 ноя 2012, 11:15

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

Seolkin

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




Смотрел как сделано в других базах, однако там сделано всё через дополнительную общую форму.
Надеюсь смог нормально объяснить.

Klyacksa

Создавался (не записывался) НОВЫЙ РЕГИСТР СВЕДЕНИЙ???
Боюсь, создавать программно новый объект конфигурации Вам не удастся.
Скорее всего Вы имели ввиду что-то другое. Переформулируйте
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Gunner

Процедура ГражданствоПриИзменении(Элемент)
    НаборЗаписей = РегистрыСведений.ПаспортныеДанныеФизическихЛиц.СоздатьНаборЗаписей();
    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Гражданство = Элемент.Значение;
    НоваяЗапись.ФИО = Ссылка;
    ФИО = Строка(Ссылка);   
КонецПроцедуры


Seolkin

СтандартнаяОбработка=Ложь;
Отказ=Ложь;
Формочка=РегистрыСведений.ПаспортныеДанныеФизическихЛиц.ПолучитьФорму("РегистрСведений.ПаспортныеДанныеФизическихЛиц.ФормаЗаписи");
Формочка.Открыть();

При использовании этого кода он создаёт новый регистр сведений, но не записывает его. Я хочу что бы он не просто открывался, но и автоматически выбирал ФИО из справочника "Физические лица" (текущего).


Gunner, спасибо, но в данном примере он сразу записывает. Попробую Объяснить получше.
Возьмите любую базу (к примеру зарплата и кадры) и в справочнике "Физические лица" введите ФИО, сохраните и нажмите на "Удостоверение". После нажатия создастся(не сохранится) новый регистр сведений с нужным ФИО.

Gunner

СтандартнаяОбработка=Ложь;
Отказ=Ложь;
Формочка=РегистрыСведений.ПаспортныеДанныеФизическихЛиц.ПолучитьФорму("ФормаЗаписи");
Формочка.Открыть();
Формочка.ФИО = Ссылка;



Dethmontt

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


Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

cska-fanat-kz

В типовой - у справочника ФизическиеЛица сделана отдельная произвольная форма для редактирования ЗАПИСИ регистра СведенияОГражданствеФизЛиц.
Посмотрите как сделано в типовой - не так уж там все и сложно для понимания...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Seolkin

СтандартнаяОбработка=Ложь;
Отказ=Ложь;
Формочка=РегистрыСведений.ПаспортныеДанныеФизическихЛиц.ПолучитьФорму("ФормаЗаписи");
Формочка.Открыть();
Формочка.ФИО = Ссылка;

Первоначально таким методом и пробовал, но выскакивала ошибка, что поле объекта не обнаружено.


ЦитироватьВ типовой - у справочника ФизическиеЛица сделана отдельная произвольная форма для редактирования ЗАПИСИ регистра СведенияОГражданствеФизЛиц.
Посмотрите как сделано в типовой - не так уж там все и сложно для понимания...
Там сделано через общую форму и с этим я разбирался. Как сделать без общей формы так и не понял.

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

Спасибо. правда пока не получилось, но по крайней мере понял "куда копать", так что разберусь. Если не сложно, можете пожалуйста пояснить значение слова "ключ" во второй строчке (которое в кавычках).

Dethmontt

Глобальный контекст (Global context)
ОткрытьФорму (OpenForm)
Вариант синтаксиса: По названию

Синтаксис:

ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>)
Параметры:


<Параметры> (необязательный)

Тип: Структура.
Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры.
П = Новый Структура("Ключ", Поставщик);
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П);
Форма.Открыть();


Добавлено: 17 ноя 2012, 23:33


В вашем случае "Ключ" ничем заменять не нужно
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

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

Рейтинг@Mail.ru

Поиск