PDA

Просмотр полной версии : Настройка формы



Whes
13.02.2017, 17:00
Всем привет.
1. Есть форма на которой располагаются Наименование, Фамилия, Имя , Отчество. Как сделать чтобы ФИО выводилось при записи в строке наименование?
2. Как сделать справочник выбора, чтобы не выпадающим списком, а именно открывалось окно с возможностью выбора из него?

avm3110
13.02.2017, 23:09
1. Есть форма на которой располагаются Наименование, Фамилия, Имя , Отчество. Как сделать чтобы ФИО выводилось при записи в строке наименование?
Вставить код в обработчик формы ПриЗаписи


2. Как сделать справочник выбора, чтобы не выпадающим списком, а именно открывалось окно с возможностью выбора из него?
А поискать в гугле - не? Ведь никто не знает, а что говоря вы хотите. Может это?
http://stop1c.ru/books/1c82_prakt_posob/book1p27/

Whes
14.02.2017, 16:16
Вставить код в обработчик формы ПриЗаписи

Вставляю, а он не работает. Что не так?

Процедура ПриЗаписи();
Спр = Справочники.Пациенты.Созда тьЭлемент();
Спр.Наименование = СокрЛП(Спр.Фамилия)+" "+СокрЛП(Спр.Имя)+" "+СокрЛП(Спр.Отчество);
Спр.Записать();
КонецПроцедуры

avm3110
14.02.2017, 16:55
Вставляю, а он не работает. Что не так?

Может мы о разном?
Ты "вставляешь в модуле объекта или формы?
Зачем нужно делать Справочники.Пациенты.Созда тьЭлемент() если ты находишься "в этом элементе" и значит его нужно только "Записать" ?

Whes
14.02.2017, 17:00
В модуле формы пишу

avm3110
15.02.2017, 05:50
Тогда нужно лишь:
Процедура ПриЗаписи();

Наименование = СокрЛП(Фамилия)+" "+СокрЛП(Имя)+" "+СокрЛП(Отчество);

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

Пы.СЫ но не забыть, чтобы обработчик ПриЗаписи был "взведен" для формы

Whes
15.02.2017, 09:50
Тогда нужно лишь:
Процедура ПриЗаписи();

Наименование = СокрЛП(Фамилия)+" "+СокрЛП(Имя)+" "+СокрЛП(Отчество);

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

Пы.СЫ но не забыть, чтобы обработчик ПриЗаписи был "взведен" для формы

Спасибо

Whes
15.02.2017, 10:38
Тогда нужно лишь:
Процедура ПриЗаписи();

Наименование = СокрЛП(Фамилия)+" "+СокрЛП(Имя)+" "+СокрЛП(Отчество);

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

Пы.СЫ но не забыть, чтобы обработчик ПриЗаписи был "взведен" для формы

А как будет в модуле объекта?

avm3110
15.02.2017, 13:13
Код будет такой же, но тут вопрос "взведения" обработчика.
Если это в модуле формы, но обработчик не взведен, то естественно, что работать не будет

Whes
15.02.2017, 17:04
Есть еще вопрос. Хочу сделать строку в корой будет считаться кол-во полных лет. Написал вставил в модуль формы, а она не считает.

Процедура ПолныхЛет()
Возраст = Дата(ТекущаяДата()) - Дата(ДатаРождения);
Если Месяц(ТекущаяДата()) < Месяц(ДатаРождения) Тогда
Возраст = Возраст - 1;
ИначеЕсли Месяц(ТекущаяДата()) = Месяц(ДатаРождения) Тогда
Если День(ТекущаяДата()) < День(ДатаРождения) Тогда
Возраст = Возраст - 1;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

alexandr_ll
16.02.2017, 07:56
Есть еще вопрос. Хочу сделать строку в корой будет считаться кол-во полных лет. Написал вставил в модуль формы, а она не считает.

Процедура ПолныхЛет()
Возраст = Дата(ТекущаяДата()) - Дата(ДатаРождения);
Если Месяц(ТекущаяДата()) < Месяц(ДатаРождения) Тогда
Возраст = Возраст - 1;
ИначеЕсли Месяц(ТекущаяДата()) = Месяц(ДатаРождения) Тогда
Если День(ТекущаяДата()) < День(ДатаРождения) Тогда
Возраст = Возраст - 1;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

Проверьте, каков результат вычисления
Возраст = Дата(ТекущаяДата()) - Дата(ДатаРождения);?
Кстати, почему вы не указываете платформу, конфигурацию и вид приложения? Одни догадки

Whes
16.02.2017, 09:25
Проверьте, каков результат вычисления
Возраст = Дата(ТекущаяДата()) - Дата(ДатаРождения);?
Кстати, почему вы не указываете платформу, конфигурацию и вид приложения? Одни догадки

Ну да бред получается. Там где Дата он должен год считать.

1С 8.3: Технологическая поставка

avm3110
16.02.2017, 10:14
Ну да бред получается. Там где Дата он должен год считать.

На самом деле "не бред":blush:
Дата(ТекущаяДата()) - Дата(ДатаРождения) - это "разность дат" с секундах"
Год(ТекущаяДата()) - Год(ДатаРождения) - это "разность дат" с годах"

Но при этом нужно обработать три ситуации:
"номер месяца" рождения - больше "номера месяца" текущей даты
"номер месяца" рождения - равен "номеру месяца" текущей даты
"номер месяца" рождения - меньше "номера месяца" текущей даты


Ну и все

Whes
16.02.2017, 10:15
Проверьте, каков результат вычисления
Возраст = Дата(ТекущаяДата()) - Дата(ДатаРождения);?


Заменил Дата на Год но результатов 0. Или не так надо было?

Whes
16.02.2017, 10:36
На самом деле "не бред":blush:
Дата(ТекущаяДата()) - Дата(ДатаРождения) - это "разность дат" с секундах"
Год(ТекущаяДата()) - Год(ДатаРождения) - это "разность дат" с годах"

Но при этом нужно обработать три ситуации:
"номер месяца" рождения - больше "номера месяца" текущей даты
"номер месяца" рождения - равен "номеру месяца" текущей даты
"номер месяца" рождения - меньше "номера месяца" текущей даты


Ну и все

Но с этим кодом он должен то показывать результат? (Пусть и не правильный) Или нет?
Процедура ПолныхЛет();
Возраст = Год(ТекущаяДата()) - Год(ДатаРождения);
Если Месяц(ТекущаяДата()) < Месяц(ДатаРождения) Тогда
Возраст = Возраст - 1;
ИначеЕсли Месяц(ТекущаяДата()) = Месяц(ДатаРождения) Тогда
Если День(ТекущаяДата()) < День(ДатаРождения) Тогда
Возраст = Возраст - 1;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

avm3110
16.02.2017, 12:25
Но с этим кодом он должен то показывать результат? (Пусть и не правильный) Или нет?

А где (как) смотрите результат?

пробовали отладчик?

Как вариант проверить - а что находится в "ДатаРождения" - "строка", "число" или "дата"?

Whes
17.02.2017, 09:22
А где (как) смотрите результат?

пробовали отладчик?

Как вариант проверить - а что находится в "ДатаРождения" - "строка", "число" или "дата"?

В справочнике создал 2 реквизита ДатаРождения(Дата) и Возраст(Число). Создал форму справочника и поместил на неё ДатуРождения и Возраст. Открыл справочник: Прочее->Модуль объекта и вставил код. Запустил, ошибок нет но и результата нет.

avm3110
17.02.2017, 09:57
А форма какая? Обычная или управляемая?
поставь в отладчике точку останова на строке
Возраст = Год(ТекущаяДата()) - Год(ДатаРождения);

и посмотри в окне отладки что у тебя возвращает ДатаРождения, что ТекущаяДата(), а что само выражение Год(ТекущаяДата()) - Год(ДатаРождения)

Whes
17.02.2017, 10:38
А форма какая? Обычная или управляемая?
поставь в отладчике точку останова на строке
Возраст = Год(ТекущаяДата()) - Год(ДатаРождения);

и посмотри в окне отладки что у тебя возвращает ДатаРождения, что ТекущаяДата(), а что само выражение Год(ТекущаяДата()) - Год(ДатаРождения)

А управляемая или обычная это как? Поставил точку он на неё не реагирует. Из-за чего?

avm3110
17.02.2017, 11:00
Поставил точку он на неё не реагирует. Из-за чего?
А тестишь в файловой базе или в клиент сервере? Если в клиент-сервере, то как вариант не подключился отладчик к сессии


А управляемая или обычная это как?
э-э-э.. Ну как бы тут тебе объяснить :blush:

Ну например тут "про это" - http://1c-programs.ru/chastye-voprosy-po-1s/chto-takoe-obychnoe-i-upravljaemoe-prilozhenie-v-1s-otlichija-obychnogo-prilozhenija-ot-upravljaemogo-v-1s.html

Whes
17.02.2017, 18:02
А тестишь в файловой базе или в клиент сервере? Если в клиент-сервере, то как вариант не подключился отладчик к сессии
Вообщем сделал так и заработало

Процедура ПриЗаписи();

Наименование = СокрЛП(Фамилия)+" "+СокрЛП(Имя)+" "+СокрЛП(Отчество);

//ПолныхЛет
Возраст = Год(ТекущаяДата()) - Год(ДатаРождения);
Если Месяц(ТекущаяДата()) < Месяц(ДатаРождения) Тогда
Возраст = Возраст - 1;
ИначеЕсли Месяц(ТекущаяДата()) = Месяц(ДатаРождения) Тогда
Если День(ТекущаяДата()) < День(ДатаРождения) Тогда
Возраст = Возраст - 1;
КонецЕсли;
КонецЕсли;

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

Whes
20.02.2017, 16:40
Подскажи как в базу добавить Адресный классификатор(Фиас или Кладр)?

avm3110
20.02.2017, 21:28
Смотря в какую базу. Если это типовая конфа типа ЗУПа, то заливка идет через регистр сведений "Адресный классификатор", там для этого есть соответствующая функциональность

Whes
21.02.2017, 09:05
Смотря в какую базу. Если это типовая конфа типа ЗУПа, то заливка идет через регистр сведений "Адресный классификатор", там для этого есть соответствующая функциональность

А если новая(голая) база?

Whes
21.02.2017, 09:09
Смотря в какую базу. Если это типовая конфа типа ЗУПа, то заливка идет через регистр сведений "Адресный классификатор", там для этого есть соответствующая функциональность

А если новая(голая) база?(У меня без всяких типовых конфигураций, делаю с нуля на 1с 8.3:Технологическая поставка)

avm3110
21.02.2017, 15:06
Есть такая классная штука как БСП (библиотека стандартных подсистем). Включаешь в свою конфу "с нуля" эти типовые библиотеки и там докуя полезного типового функционала

Whes
21.02.2017, 18:54
Есть такая классная штука как БСП (библиотека стандартных подсистем). Включаешь в свою конфу "с нуля" эти типовые библиотеки и там докуя полезного типового функционала

Спасибо, буду пробовать устанавливать