Изменения в документе при проведении другого

1. AleksandrLeshkov 12.08.21 20:01 Сейчас в теме
Добрый день! Ещё учусь 1С, поэтому не кидайте камнями. Есть документ Экзаменационная ведомость, в котором отражается сдал абитуриент по определённому конкурсу испытания или нет. Также есть документ Анкета абитуриента, в котором хранятся статусы поданных заявлений типа подано, отозвано и прочее в табличной части Заявления. Задача следующего плана: при проведении документа Экз. ведомость необходимо чтобы в документе Анкета абитуриента статус у заявления, по которому абитуриент не сдал вступительное испытание менялся на отозвано. В регистрах заявления не отражаются. Возможно ли вообще сделать так, чтобы данные изменения совершались? У справочника знаю как сделать подобное, но у документа пока не понял схему
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Fox-trot 158 12.08.21 20:09 Сейчас в теме
уж лучше регистры использовать для такого рода процессов
AleksandrLeshkov; DJ_Codebase; +2 Ответить
3. Release 12.08.21 20:39 Сейчас в теме
Согласен, сразу бросается неправильное проектирование конфигурации БД: документ должен отражать однотипную операцию или несколько таких.
Непохоже, чтобы документ "Анкета абитуриента" отражал такую операцию. Совсем другое дело, если бы документ назывался "Заявление", который отражал бы подачу заявления. И соответственно он создает этой операцией начальный статус на "подано", который как правильно написали в (2) должен хранится в регистре сведений (периодическом), например "Статусы заявлений". А документ "Экзаменационная ведомость" отражает другую операцию: сдачи/не сдачи, которая устанавливает конечный статус заявления: "сдано", "отозвано" и т.д., записывая данные сведения в упомянутый выше регистр. В таком случае в случае отмены последней операции (распроведения документа), статус заявления автоматически поменяется на начальный.
4. AleksandrLeshkov 13.08.21 03:12 Сейчас в теме
(3)а вот например есть у меня документ Рейтинг абитуриента, в котором формируются списки на зачисление, я могу же туда выбрать студентов, которые сдали экзамен? Я так понял это каким-то объединением в запросе надо делать или вложенным, так как экз ведомость и анкета делают движение по регистру вступительные испытания
8. Release 13.08.21 09:49 Сейчас в теме
(7) Да по ссылке документа можно получить его объект и затем можно менять его данные как душе угодно. Можно обработкой события ПослеЗаписи в модуле документа, можно подпиской на событие.
Если вы производите изменение в другом документе на основании изменения в первом, то данные регистра не нужны, т.к. нужные данные вам уже есть в этом самом документе.
Другое дело, что изменять данные в одном документе при записи другого - это неправильный подход сам по себе, т.к. в случае ошибки ввода пользователем в одном документе зафиксируются неправильные данные в другом. Документы должны фиксировать (записывать) данные только в рамках себя самих: в своём объекте и регистрах, желательно подчиненных регистратору.

(4) Третий документ "Рейтинг абитуриента", если делать корректно, нужно заполнять на основании данных регистра сведений. Никакого объединения не нужно. Если регистр периодический, то выборка делается через СрезПоследних и условием ограничения по периоду изменения статуса и его значением "сдано" (или как там у вас).

Что-то вроде такого:
ВЫБРАТЬ
	ДанныеАбитуриентаСрезПоследних.Абитуриент,
	ДанныеАбитуриентаСрезПоследних.СтатусИспытания
ИЗ
	РегистрСведений.ДанныеАбитуриента.СрезПоследних КАК ДанныеАбитуриентаСрезПоследних
ГДЕ
	ДанныеАбитуриентаСрезПоследних.Период МЕЖДУ &НачалоПериода И &КонецПериода
	И ДанныеАбитуриентаСрезПоследних.СтатусИспытания = ЗНАЧЕНИЕ(Перечисление.СтатусыИспытания.Сдано)
AleksandrLeshkov; +1 Ответить
9. AleksandrLeshkov 13.08.21 10:22 Сейчас в теме
(8) Большое спасибо, доходчиво объяснили, буду пробовать
5. AleksandrLeshkov 13.08.21 04:16 Сейчас в теме
(3) И в документе, получается, как в справочнике нельзя записывать новые значения через ПолучитьОбъект?
6. alxarz 32 13.08.21 08:59 Сейчас в теме
(5)
И в документе, получается, как в справочнике нельзя записывать новые значения через ПолучитьОбъект?
можно, почему нельзя?
7. AleksandrLeshkov 13.08.21 09:11 Сейчас в теме
(6) Вот в ведомости экзамена у меня есть ссылка на анкету абитуриента. Правильно понимаю, что мне нужно создать событие ПослеЗаписи на сервере, в ней получить анкету через получить объект и установить в табличной части нужное значение? Выполнив в ней поиск по конкурсу сдаваемому. Или проще выбирать в Рейтинг абитуриентов только тех, кто в регистре отмечен как "сдал"?
10. alxarz 32 13.08.21 12:29 Сейчас в теме
(7) И так и так не сложно. Как проще виднее на месте. А если ведомость отменят/удалят статус в анкете должен снова измениться?
AleksandrLeshkov; +1 Ответить
11. AleksandrLeshkov 13.08.21 12:39 Сейчас в теме
(10) Если ошибочно ввели, то да, должен измениться обратно
12. RustamZz 13.08.21 13:12 Сейчас в теме
(7) В ведомости должен быть справочник Абитуриент экзамен же он сдает, а не анкета. При проведении в РС записывается для каждого Абитуриента сдал, не сдал и какой экзамен. Анкета это больше отчет в которой отображаются как данные жестко связанные с абитуриентом типа ФИО, дата рождения, пол (хотя это и не толерантно), так и данные которые меняются (место жительство, телефон и результаты экзамена в том числе). Заявления, Ведомости это отдельные документы.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот