Имя: Пароль:
1C
 
Занесение в справочник программно с ошибкой
0 Анастасия Изотова
 
02.09.15
08:57
Добрый день. Помогите советом: Как программно внести в справочник данные ?
На форме документа есть поле выбора - Пациент. С обращением к справочнику ФизЛиц.
И есть поле ввода, куда вносится руками ЛичНомер.
При проведении документа ЛичНомер и текущая дата должны писаться в соответсвующие поля-реквизиты этого самого Пациента, справочника ФизЛиц.

СпрСотр = Справочники.ФизическиеЛица;
Спр=Справочники.ФизическиеЛица.НайтиПоНаименованию(ЭтаФорма.Объект.Пациент);
Об = СпрСотр.ПолучитьОбъект();
Об.ДатаПосещения = ДатаТекущая ....
Об.ЛичНомер = ЭтаФорма.Объект.ЛичНомер;
Об.Записать();

Но, не получается в общем ... не могли бы вы подправить в чем у меня косяк ?
1 1Сергей
 
02.09.15
09:00
ЛичНомер - реквизит формы?
2 salvator
 
02.09.15
09:00
Объект получать надо не из СпрСотр, а из Спр.
3 Брегорьян
 
02.09.15
09:03
(2) в том случае, если не он пустая
4 Krolik Bezobraznik
 
02.09.15
09:04
УФ что ли?

Вторая строчка вообще зачем?

Объект.Пациент - "Пациент" какого типа?
5 Krolik Bezobraznik
 
02.09.15
09:07
Об = Объект.Пациент.ПолучитьОбъект();
Об.ДатаПосещения = ДатаТекущая;
Об.ЛичНомер = Объект.ЛичНомер;
Об.Записать();
6 1Сергей
 
02.09.15
09:10
(5) это если у Объекта есть ЛичНомер
7 ibreiter
 
02.09.15
09:13
(0) У СпрСотр, который СпрСотр = Справочники.ФизическиеЛица; вы не сможете получить объект
8 Анастасия Изотова
 
03.09.15
03:23
ЛичНомер -  да, это реквизит формы. Строковый. Его нужно записать в обьект справочника ФизЛица, в конкретную фамилию, которая как раз выбрана на форме в элементе выбора.

Обьект Пациент на форме - это поле выбора. Привязанное к данным Пациент, тип значения: СправочникСсылка.ФизическиеЛица

Вторая строчка - я хотела как то запросить из справочника ТОТ обьект, который ныне выборан в поле выбора Пациент (см.выше)

У обьекта Пациент ... (задумалась) .. в справочнике ФизЛица я добавила реквизит, строковый, ЛичНомер, у каждого пациента его туда можно заносить.
9 hhhh
 
03.09.15
04:25
поле ввода делайте, причем ткт поле выбора?
10 mehfk
 
03.09.15
04:46
11 Мутабор
 
03.09.15
05:56
СпрСотр = Справочники.ФизическиеЛица;
Спр=Справочники.ФизическиеЛица.НайтиПоНаименованию(ЭтаФорма.Объект.Пациент);

Почему 1 строка СпрСотр, а 2 Спр?

Об = СпрСотр.ПолучитьОбъект();
Об.ДатаПосещения = ДатаТекущая ....
Об.ЛичНомер = ЭтаФорма.Объект.ЛичНомер;
Об.Записать();


Откуда возьмется Об, если СпрСотр пустое значение?
12 Анастасия Изотова
 
03.09.15
06:17
вот так ?

Спр = Справочники.ФизическиеЛица;
        Спр = Справочники.ФизическиеЛица.НайтиПоНаименованию(ЭтаФорма.Объект.Пациент);
        Об = Спр.ПолучитьОбъект();
        Об.ДатаПосещения = ДатаТекущая ....
        Об.ЛичНомер = ЭтаФорма.Объект.ЛичНомер;
        Об.Записать();

я же сначала в поле выбора Пациент, выбрала из справочника физ лиц Иванова например
потом, я так поняла, проводка  ищет имя Иванов в поле Обект.Пациент на форме, лезет в справочник, и ТУДА в этого пациента пишет в реквизиты  Дату и Лич номер, взятые с формы ...

нет ?
я так поняла что сначала я
13 Альбатрос
 
03.09.15
06:54
(12) ...Об = Пациент.ПолучитьОбъект();
14 Брегорьян
 
03.09.15
07:09
(12) > в поле выбора Пациент, выбрала
уже, понимаешь? он выбран. он есть. незачем его ещё искать

   RShurik
            Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Контрагент);
            Договор = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Договор);
            Соглашение = Справочники.СоглашенияСКлиентами.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Соглашение);
   Torquader
"ну нельзя же просто так взять ссылку и использовать её" (с)
15 Анастасия Изотова
 
03.09.15
09:23
Сделала так:

Спр = Справочники.ФизическиеЛица;
Об = Пациент.ПолучитьОбъект();
Об.ЛичНомер = ЭтаФорма.Объект.ЛичНомер;
Об.Записать();

!!!

{Документ.НазначениеНаОсмотр.Форма.ФормаДокумента(1511)}: Поле объекта не обнаружено (Объект)
        Об.ЛичНомер = ЭтаФорма.Объект.ЛичНомер;
16 Анастасия Изотова
 
03.09.15
09:25
Не совсем поняла, так КАКой строкой я запрашиваю пациента из поля выбора, на фио которого я буду искать в справочнике ?
по строке:
Спр = Справочники.ФизическиеЛица.НайтиПоНаименованию(ЭтаФорма.Объект.Пациент);
или по строке:
Об = Пациент.ПолучитьОбъект();


и все равно, и так и так пробовала, ругается что поле Обьект не найдено
17 ibreiter
 
03.09.15
09:26
Вы из какой формы вызываете?
18 Анастасия Изотова
 
03.09.15
09:32
это документ, НазначениеУслуг. В нем основная: ФормаДокумента.
в ней поле выбора (ссылается на справочник физ лиц), откуда я выбираю физ лицо.    выполнив процедуру я хочу записать в ЭТО, выбранное-найденное физ лицо, кое какие реквизиты, из тех что я только что в форме в поля ввода вбила
19 ibreiter
 
03.09.15
09:43
ФЛ = Объект.Пациент.ПолучитьОбъект();
ФЛ.ЛичныйНомер = ЛичныйНомер;
Фл.Записать();
20 ibreiter
 
03.09.15
09:47
Ну и еще

ФЛ.ДатаПосещения = ТекущаяДата();

а потом записать
21 Брегорьян
 
03.09.15
09:52
автоматическое создание элементов справочника неокрепшим мозгом приводит к облысению головы. при чём тут документ?
22 Анастасия Изотова
 
03.09.15
09:58
А я не создаю новый элемент из этого документа, я дозаписываю реквизиты в уже имеющиеся обьекты справочника.


Спр = Справочники.ФизическиеЛица;
        ФЛ = Спр.ПолучитьОбъект();
        ФЛ = Объект.Пациент.ПолучитьОбъект();
        ФЛ.ЛичныйНомер = ЛичныйНомер;
        ФЛ.ДатаПосещения = ТекущаяДата();
        Фл.Записать();

я не могу срастить самое начало (((
23 ibreiter
 
03.09.15
10:00
Спр = Справочники.ФизическиеЛица;
ФЛ = Спр.ПолучитьОбъект();

Это вот зачем?
24 ibreiter
 
03.09.15
10:00
Уберите, а дальше все нормально
25 Анастасия Изотова
 
03.09.15
10:01
ФЛ = Объект.Пациент.ПолучитьОбъект();
        ФЛ.ЛичныйНомер = ЛичныйНомер;
        ФЛ.ДатаПосещения = ТекущаяДата();
        Фл.Записать();

оставляю ТОЛЬКО это ?
в процедуре ?

а как она поймет, о каком справочнике идет речь ?
разве строка про ФизЛиц не нужна ?
26 ibreiter
 
03.09.15
10:02
Переменная Спр не ссылка, из нее вы никогда не получите объект, да и зачем это все...
Физлицо выбрали на форме, ссылка уже в "Пациент", из ссылки получили объект, реквизиты заполнили, записали, забыли
27 ibreiter
 
03.09.15
10:03
(0) На форме документа есть поле выбора - Пациент. С обращением к справочнику ФизЛиц. - Это можно понимать, что пациент ссылка в справочник ФизЛиц?
28 ibreiter
 
03.09.15
10:04
(25) Все верно, только это
29 Анастасия Изотова
 
03.09.15
10:07
Поняла. и правда, очевидно же, откуда тянется суть к справочнику.  только вот что:

{Документ.НазначениеНаОсмотр.Форма.ФормаДокумента(1515,8)}: Переменная не определена (Объект)
        ФЛ = <<?>>Объект.Пациент.ПолучитьОбъект();

(поле выбора физ лица имеет имя: Пациент, и данные: Пациент)
30 ibreiter
 
03.09.15
10:14
Форма точно управляемая?
31 Lexey_
 
03.09.15
10:14
(29) имя у основного реквизита формы какое?
32 Lexey_
 
03.09.15
10:16
(30) видимо, нет, тогда без "Объект"
33 Анастасия Изотова
 
03.09.15
10:40
Да, без обьект !  получилось!  Спасибо вам огромное !
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.