|
Автоматическое заполнение табличной части документа при изменении | ☑ | ||
---|---|---|---|---|
0
oqjawa
15.05.17
✎
09:24
|
есть документ "Выхода_на_практику" с табличной частью Студенты
реквизиты табличной части "Студенты": ФИО_студенты Договор Место_прохождения_практики База_классов Основа_обучения ФИО_студента ссылается на справочник "Студенты" в справочники "Студенты" указаны реквизиты: Наименование - в котором пишется ФИО студента База Форма_обучения база и форма_обучения ссылаются на объект перечисления ПеречислениеСсылка.База_классов ПеречислениеСсылка.Основа_обучения |
|||
1
oqjawa
15.05.17
✎
09:25
|
правильно ли у меня построена структура? где я должен писать процедуру и функциию? в модуле объекта??
|
|||
2
oqjawa
15.05.17
✎
11:15
|
наведите на мысль
|
|||
3
catena
15.05.17
✎
11:16
|
(2)На какую мысль? Ни одной мысли тут не вижу. Заполнение чем? При изменении чего?
|
|||
4
oqjawa
15.05.17
✎
11:19
|
в документе в табличной части "Студенты"
при изменении ФИО_студента чтобы автоматически подставлялись База и основа_обучения |
|||
5
oqjawa
15.05.17
✎
11:21
|
например Петров - 9 классов - бюджетник
меняю фамилию на Иванов - подставляются значения из справоника студенты 11 классов - платник |
|||
6
Numerus Mikhail
15.05.17
✎
11:24
|
(2) Обработчик "При изменении" колонки ФИО_Студенты табличной части
|
|||
7
catena
15.05.17
✎
11:25
|
(4)Встаньте на ячейку "ФИО_студента" и найдите в событиях "При изменении". Оно само направит, куда нужно.
|
|||
8
FIXXXL
15.05.17
✎
11:25
|
УпрФормы? получай НаСервереБезКонтекста нужные реквизиты от студента и заполняй на форме
|
|||
9
oqjawa
15.05.17
✎
11:26
|
как на неё встать? в форме документа?? или при создании документа на вкладке данные?
где писать обработчик в модуле документа? |
|||
10
catena
15.05.17
✎
11:27
|
(8)Он пока еще не определился процедура это или функция. Там до получения данных еще копать и копать))
|
|||
11
Numerus Mikhail
15.05.17
✎
11:28
|
(9) в смысле как
в конфигураторе открываешь форму тыкаешь на нужную колонку и там в свойствах выбираешь "При имзенении" |
|||
12
oqjawa
15.05.17
✎
11:28
|
а как определится?
|
|||
13
oqjawa
15.05.17
✎
11:30
|
ладно, наверное я вас замучал.. просто никогда с этим не сталкивался.. если есть что почитать по этому вопросу.. скиньте ссылки, буду благодарен вам)
|
|||
14
Dmitrii
гуру
15.05.17
✎
11:32
|
(0) Какая-то явная кривизна в структуре построения данных. Плюс избыточность. Если избыточность в некоторых случаях допустима, то вот кривизна...
Если "База" и "Форма" - это реквизиты справочника "Студенты", то нафига они нужны в табличной части "Студенты" твоего документа? Это явная избыточность. А какова логика, если в справочнике у студента Пупкина указана база "9 классов", а в документе вручную в строке со студентом Пупкиным поставят в поле База - "11 классов"? |
|||
15
lodger
15.05.17
✎
11:33
|
(13) ваши посты звучат так, будто школьник полистал учебник для ВТУЗов и просто подряд говорит термины.
может стоит заняться изучением с систематическим подходом? загуглить курсы, например "Курс начинающего программиста"? |
|||
16
lodger
15.05.17
✎
11:34
|
(14) эти избыточные поля могут быть реквизитами ТЧ на форме и заполняться\изменяться по открытии формы\изменении строки тч, будучи недоступными для редактирования, а потом забываться как страшный сон.
|
|||
17
oqjawa
15.05.17
✎
11:38
|
Справочник "Студенты" предназначен для хранения данных о Пупкине о его базе классов и формы обучения
|
|||
18
oqjawa
15.05.17
✎
11:39
|
В документе "ВЫхода на практику" идёт перечисление Пупкиных и их бзы классов и форме обучения и ещё множество реквизитов
данный документ формирует приказ ( печатную форму) выхода на практику студентов |
|||
19
dezss
15.05.17
✎
11:40
|
Если УФ, то просто создай элемент таблицы формы и сделай ссылку на эти реквизиты студента (если че, это ПутьКДанным).
|
|||
20
oqjawa
15.05.17
✎
11:40
|
мне нужно что бы при указании Пупкина в табличную часть попали его реквизиты из справочника в котором они уже указаны
как это сделать, можно по подробней если не трудно |
|||
21
dezss
15.05.17
✎
11:40
|
(19) Но тогда эти данные не будут сохраняться, будет сохраняться только сам студент.
|
|||
22
oqjawa
15.05.17
✎
11:41
|
и они автоматически подставятся или придётся их вручную выбирать из выплавающего списка??
|
|||
23
dezss
15.05.17
✎
11:42
|
автоматически. они вообще будут физически связаны, но если открыть этот документ когда эти данные в справочнике студенты поменяются, то они поменяются и в этом документе.
|
|||
24
oqjawa
15.05.17
✎
11:43
|
ладно они не будут сохранятся но при написании запроса на вывод информации в печатную форму я могу их учитывать?
|
|||
25
catena
15.05.17
✎
11:44
|
(21)Будет грустно, если выхода на практику оформят в мае, в июне переведут студентов на следующий курс и в сентябре будут задним числом перепечатывать приказы...
|
|||
26
dezss
15.05.17
✎
11:44
|
(24) при написании запроса они и так у тебя всегда под рукой, так хранятся в справочнике студенты.
|
|||
27
dezss
15.05.17
✎
11:45
|
(25) ну так я про этот момент написал.
|
|||
28
oqjawa
15.05.17
✎
11:45
|
да очень грустно.. значит не то
|
|||
29
dezss
15.05.17
✎
11:46
|
(25) да и вообще такую инфу хранить в справочнике - ахинея...так что бреда больше не станет, но он будет более систематизирован))))
|
|||
30
oqjawa
15.05.17
✎
11:46
|
инфу о студентах хранить в справочнике ахинея?
|
|||
31
dezss
15.05.17
✎
11:46
|
(28) тогда обрабатывать событие приизменении.
|
|||
32
oqjawa
15.05.17
✎
11:46
|
а в чём её хранить
|
|||
33
dezss
15.05.17
✎
11:47
|
(30) периодически изменяющуюся - да.
|
|||
34
dezss
15.05.17
✎
11:47
|
(32) очевидно в периодическом регистре сведений.
|
|||
35
oqjawa
15.05.17
✎
11:48
|
с какой переодичность создать этот регистр? каждый день может уйти в академ студент и выйти с него
|
|||
36
catena
15.05.17
✎
11:49
|
(30)А как вы из справочника узнаете, что Петров два раза оставался на второй год, а на Иванова отсутствует выхода на практику именно на 3 курсе два года назад? Учитывая, что он экстерном сдавал второй и четвертый?
|
|||
37
Dmitrii
гуру
15.05.17
✎
11:49
|
(16) >> избыточные поля могут быть реквизитами ТЧ на форме
В (0) нам представлена иная концепция. |
|||
38
dezss
15.05.17
✎
11:50
|
(35) если в один день и уйти и выйти - то секунды, если нет, то день....все зависит от возможной частоты такого события от одного студента.
|
|||
39
h-sp
15.05.17
✎
11:52
|
(35) тогда с периодичностью день
|
|||
40
oqjawa
15.05.17
✎
11:54
|
что такое избыточные поля Дмитрий?
|
|||
41
oqjawa
15.05.17
✎
12:01
|
Для чего нужен документ? в документе заполняются реквизиты со всех объектов конфигурации если сказать грубо.. на все реквизиты документа указанны ссылки на Объект.Реквизит где уже имеются данные...
что вы называете избыточными полями??? документ форсирует записи в регистр сведений на основе которых создаются отчёты.. на основе документа формируется печатная форма приказа о выходе студентов на практику.. какие избыточные поля? не понимаю вас.. я просто хочу поинтересоваться у вас и других профессионалов и мастеров, и просто талантливых людей как создать Автоматическое заполнение табличной части документа При Изменении Реквизита функцией или процедурой |
|||
42
h-sp
15.05.17
✎
12:03
|
(40) ну если например есть в табличной части поле Студент, То мы элементарно имеем у него реквизит база, просто пишем Студент.База.
а ты завел в табличной части отдельно Студент и отдельно База. Теперь прикинь, вы создали 100 документов Выход_на_практику, и там записано это поло Форма. И тут вы в справочнике Студенты меняенте поле Форма у каких-то студентов. Тогда получается, что в документах Выход_на_практику у вас полная белиберда, где правильно форма стоит, где неправильно. А всему виной идиотская программа, которую написал некий Окиява. |
|||
43
oqjawa
15.05.17
✎
12:03
|
ПриИзмененииФИО_студента(Элемент).. как то так вроде..
|
|||
44
h-sp
15.05.17
✎
12:04
|
(43) почему ФИО? У вас разе не справочник студенты?
|
|||
45
oqjawa
15.05.17
✎
12:06
|
справочник студенты:
Наименование; БазаКлассов ФормаОбучение |
|||
46
oqjawa
15.05.17
✎
12:08
|
Документ выхода на практику:
НомерПриказа ДатаИзданияПриказа Группа Курс Дата_начала_практики Дата_конца_практики Вид_практики Спекиальность Форма_обучения ТАБЛИЧНЫЕ ЧАСТИ "Студенты" ФИО_студента Место_прохождения_практики Договор БазаКлассов ОсноваОбучения |
|||
47
oqjawa
15.05.17
✎
12:09
|
из справочника студенты при выборе в табличной части документа Реквизит ФИО_студента хочу подставить автоматически его базу классов и его форму обучения
и занести эти данные в регистр сведений |
|||
48
oqjawa
15.05.17
✎
12:10
|
справочник студенты:
Наименование; БазаКлассов ОсноваОбучения ****** |
|||
49
dezss
15.05.17
✎
12:11
|
(44) да что ты к названиям привязался. Ну назвали так поле и фиг с ним. Главное же, какой тип у реквизита тч объекта, а не название колонки таблицы на форме.
(41) избыточность - это когда одни и те же данные есть в разных местах. В общем случае, этого желательно избегать. (47) не так и делай это при изменении. Единственное, что тебе нужно будет побороть - это найти нужную строку по элементу. |
|||
50
dezss
15.05.17
✎
12:11
|
(49) не так -> ну так
|
|||
51
h-sp
15.05.17
✎
12:17
|
(47) слева у тебя элементы формы, находишь ФИО_студента щелкаешь, справа возникает колонка свойства. Там находишь ПриИзменении, щелкаешь по нему, оно тебя выкидывает в процедуру. В этой процедуре пишешь текст программы.
|
|||
52
oqjawa
15.05.17
✎
12:22
|
избыточности данных у меня нет.. единственное где повторяются данные это в документе что вполне логично тип данных тч объекта указан в виде ссылок на реквизиты где хранятся эти данные.. э
например в тч. Место_прохождения_практики тип данных СправочникСсылка.Место_прохождения_практики h-sp.. сейчас попробую |
|||
53
h-sp
15.05.17
✎
12:29
|
(52) но ведь просто можно везде в запросах написать ФИО_студента.Место_прохождения_практики
а колонку в ТЧ Место_прохождения_практики выкинуть. Она не нужна. Зачем она, если эта инормация уже есть. |
|||
54
dezss
15.05.17
✎
12:31
|
(52) в тч.место_прохождения_практики будет ссылка на справочник, которую другим способом получить нельзя и избыточность обоснована. А вот в случае с База_классов и Основа_обучения избыточность не обоснована, так как эти данные и так хранятся в студенте, ссылка на которого УЖЕ есть в этом документе, но это лирика и связано с тем, что изначально было не до конца продумана схема хранения изменяемых данных в конфигурации.
|
|||
55
oqjawa
15.05.17
✎
12:32
|
эм.. где она уже есть??
есть отдельный справочник МестаПрохожденияПрактики там хранится условно наименование, адрес, контактное лицо, инн и тд... Пользователь должен присвоить в документе Студенту его место прозождения практики |
|||
56
oqjawa
15.05.17
✎
12:33
|
я хочу компенсировать избыточность База_классов и Основа_обучения автоподстановкой данных приИзменении
так можно сделать? |
|||
57
h-sp
15.05.17
✎
12:34
|
(55) оно есть в справочнике Студенты
|
|||
58
oqjawa
15.05.17
✎
12:36
|
из этого справочника как подставить в тч документа автоматически
|
|||
59
oqjawa
15.05.17
✎
12:36
|
обработчик события на чём делать?
|
|||
60
oqjawa
15.05.17
✎
12:37
|
&НаКлиенте
Процедура ФИО_студентаПриИзменении(Элемент) ФИО_студентаПриИзмененииНаСервере(); КонецПроцедуры &НаСервереБезКонтекста Процедура ФИО_студентаПриИзмененииНаСервере() // Вставить содержимое обработчика. КонецПроцедуры |
|||
61
h-sp
15.05.17
✎
12:37
|
то есть в запросе если нужно пишете
ФИО_студента.Место_прохождения_практики.Контактное лицо |
|||
62
h-sp
15.05.17
✎
12:38
|
(60) пишете на языке 1с. где написано // Вставить содержимое обработчика
|
|||
63
oqjawa
15.05.17
✎
12:42
|
infostar.ru/public/103398/
|
|||
64
oqjawa
15.05.17
✎
12:44
|
||||
65
dezss
15.05.17
✎
12:47
|
(61) прочитай еще раз (0) Место_прохождения_практики - это реквизит документа, а не справочника студенты.
|
|||
66
dezss
15.05.17
✎
12:48
|
(64) да-да, что-то вроде этого.
|
|||
67
oqjawa
15.05.17
✎
12:50
|
Всёверно это реквизит документа
|
|||
68
oqjawa
15.05.17
✎
12:51
|
и тип этого реквизита в виде ссылки на отдельный справочник "Места_прохождения_практики"
|
|||
69
oqjawa
27.05.17
✎
17:44
|
Есть документ Выхода_на_практику
в нём есть ТЧ Студенты в ней есть реквизиты ФИО_студента, База, Основа_обучения реквизиты указаны в виде ссылок на справочник "Студенты" в нём есть реквизиты "Наименование" в котором хранится ФИО студента "База" "Основа_обучения" как реализовать автоматическое заполнения тч документа при изменении реквизита документа "ФИО_студента" &НаКлиенте Процедура ФИО_студентаПриИзменении(Элемент) ФИО_студентаПриИзмененииНаСервере(); КонецПроцедуры &НаСервереБезКонтекста Процедура ФИО_студентаПриИзмененииНаСервере() // Вставить содержимое обработчика.КонецПроцедуры КонецПроцедуры |
|||
70
oqjawa
29.05.17
✎
12:45
|
я разместил в Модуле следующий код:
Функция ПолучитьПараметрыСтудента(Студент) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Студенты.Наименование, | Студенты.База, | Студенты.Основа_обучения |ИЗ | Справочник.Студенты КАК Студенты"; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); СписокПараметров = Новый Структура; СписокПараметров.Вставить("База"); СписокПараметров.Вставить("Основа_обучения"); Если ВыборкаДетальныеЗаписи.Следующий() Тогда СписокПараметров.База = ВыборкаДетальныеЗаписи.База; СписокПараметров.Основа_обучения = ВыборкаДетальныеЗаписи.Основа_обучения; КонецЕсли; Возврат СписокПараметров; КонецФункции и в обработчике события При изменении создал процедуру: &НаКлиенте Процедура ФИО_студентаПриИзменении(Элемент) Парам = ПолучитьПараметрыСтудента(Объект.Студенты); Объект.База = Парам.База; Объект.Основа_обучения = Парам.Основа_обучения; КонецПроцедуры возникает ошибка: {Документ.Выхода_на_практику.Форма.ФормаДокумента.Форма(46)}: Ошибка при установке значения атрибута контекста (Студенты) Парам = ПолучитьПараметрыСтудента(Объект.Студенты); по причине: Нельзя изменять поле, содержащее объект данных формы Что сделал не правильно и как это исправить не понимаю |
|||
71
h-sp
29.05.17
✎
16:15
|
как-то был один студент
Функция ПолучитьПараметрыСтудента(Студент) Экспорт и вдруг стало много. Парам = ПолучитьПараметрыСтудента(Объект.Студенты); они размножаются похоже в процессе написания запроса. |
|||
72
oqjawa
29.05.17
✎
17:16
|
{Документ.Выхода_на_практику.Форма.ФормаДокумента.Форма(38)}: Поле объекта не обнаружено (Студент)
Парам = ПолучитьПараметрыСтудента(Объект.Студент); |
|||
73
oqjawa
29.05.17
✎
17:25
|
я уже не один день сижу пытаюсь организовать автозаполнение документа, смотрю тысячи сложных примеров, пытаюсь реализовать точ в точ уже готовые решения в ранее созданных темах, но что-то всё не выходит и не выходит, я уже незнаю что делать.. кокие документы я сегодня не создавал.. про водителей и автотранспорт, про контрагентов и их контакты, про товары и их спецификации.. хоть бы один заполнился... какой момент я упускаю где у меня косяки..
|
|||
74
oqjawa
29.05.17
✎
17:26
|
Ребят умоляю, приведите мне элементарный пример с очень коротким автозаполнением одного реквизита, что бы я просто понял как это работает
|
|||
75
h-sp
29.05.17
✎
17:26
|
(72)
Функция ПолучитьПараметрыСтудента(Студент) Экспорт СписокПараметров = Новый Структура; СписокПараметров.Вставить("База", Студент.База); СписокПараметров.Вставить("Основа_обучения", Студент.ОсноваОбучения); Возврат СписокПараметров; КонецФункции &НаКлиенте Процедура ФИО_студентаПриИзменении(Элемент) Парам = ПолучитьПараметрыСтудента(Элементы.Студенты.ТекущиеДанные.Объект.ФИО_студенты); Элементы.Студенты.ТекущиеДанные.База = Парам.База; Элементы.Студенты.ТекущиеДанные.Основа_обучения = Парам.Основа_обучения; КонецПроцедуры |
|||
76
h-sp
29.05.17
✎
17:27
|
Парам = ПолучитьПараметрыСтудента(Элементы.Студенты.ТекущиеДанные.ФИО_студенты);
|
|||
77
h-sp
29.05.17
✎
17:27
|
Парам = ПолучитьПараметрыСтудента(Элементы.Студенты.ТекущиеДанные.ФИО_студента);
видимо |
|||
78
oqjawa
29.05.17
✎
17:39
|
Функция ПолучитьПараметрыСтудента(Студент) Экспорт
СписокПараметров = Новый Структура; СписокПараметров.Вставить("База", Студент.База); СписокПараметров.Вставить("Основа_обучения", Студент.Основа_обучения); Возврат СписокПараметров; КонецФункции &НаКлиенте Процедура ФИО_студентаПриИзменении(Элемент) Парам = ПолучитьПараметрыСтудента(Элементы.Студенты.ТекущиеДанные.ФИО_студента); Элементы.Студенты.ТекущиеДанные.База = Парам.База; Элементы.Студенты.ТекущиеДанные.Основа_обучения = Парам.Основа_обучения; КонецПроцедуры |
|||
79
oqjawa
29.05.17
✎
17:39
|
Вот так всё хорошо)) только не подставляет База
|
|||
80
oqjawa
29.05.17
✎
17:40
|
но подставляет основу обучения)) это офигеть!)
|
|||
81
oqjawa
29.05.17
✎
17:40
|
спасибо вам большое)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |