Изменение статуса документа при вводе на основании

1. crazyveta 01.09.24 15:32 Сейчас в теме
Необходимо, чтобы при вводе документа «Производство» на основании документа «Заказ» автоматически во втором статус менялся с «Принято» на «В производстве».

Не понимаю, как отловить это действие, чтобы с ним поработать. Хелп
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. Alex_E 2374 02.09.24 07:37 Сейчас в теме
(1) В модуле документа "Производство" см. процедуру ОбработкаЗаполенения, там всё заполненение рисуется:
пример из реализация в БП 3.0:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	
	ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
	ЗаполняетсяИзСтруктуры = ТипДанныхЗаполнения = Тип("Структура");
	Если ДанныеЗаполнения <> Неопределено Тогда
		
		Если ЗаполняетсяИзСтруктуры И ДанныеЗаполнения.Свойство("ВидОперации") Тогда
			ВидОперации = ДанныеЗаполнения.ВидОперации;
		КонецЕсли;
		
		Если ЗаполняетсяИзСтруктуры
			И ДанныеЗаполнения.Свойство("Основание") И ТипЗнч(ДанныеЗаполнения.Основание) = Тип("ФиксированныйМассив") Тогда
...
Показать
2. starjevschik 01.09.24 22:26 Сейчас в теме
Ну тут действие не поможет. Ввод на основании - мы получаем форму нового документа, заполненного на основании. Если мы даже "отловили действие", а пользователь нажал закрыть форму без записи - что мы получим? Правильно, фигню.
Поэтому логику надо пересматривать, ловить не ввод на основании, а проведение введенного на основании документа. При этом не забыть, что это может быть и повторное проведение. И заодно неплохо бы вспомнить, что тот второй документ могут ведь и отменить, удалить или снять проведение, и что тогда будет с документом-основанием?
Такие алгоритмы вообще возможны, но делать надо аккуратно и это не так чтобы три строчки кода и полчаса времени.
3. crazyveta 02.09.24 00:01 Сейчас в теме
(2) А документ, созданный на основании, хранит где-то ссылку на документ, с которого его ввели?

Можно было бы через фоновую проверку тогда сделать
4. user2033930 02.09.24 00:03 Сейчас в теме
(3) Конечно. В тетрадочку записывает, которая под кондеем в серверной валяется.

Сама-то как думаешь? Точно хорошо учила базовые объекты?
12. Ravil_ 02.09.24 08:20 Сейчас в теме
(4) надумать можно много чего, вот только зачем, если правильней уточнить. Что за базовые объекты еще которые помогают вычислить как реализовал логику до тебе неизвестный тебе программист?
14. user2033930 02.09.24 08:26 Сейчас в теме
(12) 1. Знание базовых объектов помогает понимать, что платформа сама по себе ничего никуда не записывает, и у документа нет стандартного реквизита типа "ДокументОснование", вся логика именно что реализуется программистом. (Кстати, а если и был бы - то какого типа?)

2. Если это нетиповая конфигурация и если ты хочешь понять логику "неизвестного тебе программиста", то наверное стоит найти этого программиста и уточнять у него. Исходя из знаний п.1 надо понимать, что никто не знает про то, что там у тебя написано в твоём самопале.

3. Если это типовая конфигурация, и ты хочешь уточнить у присутствующих здесь программистов какие-то нюансы - то, наверное, стоит указать наименование конфигурации и точные наименования документов. (А судя по названиям документов - это какая-то самописно-учебная конфа, и уточнять у нас бесполезно).

Есть ко мне еще претензии, рыба?
16. Ravil_ 02.09.24 08:36 Сейчас в теме
да нет, смысл какой вам вопросы задавать, набор слов каких-то не в тему с пеной у рта
17. Ravil_ 02.09.24 08:38 Сейчас в теме
(14) а пардон, я не видел что этот вопрос задал сам автор)
6. starjevschik 02.09.24 07:49 Сейчас в теме
(3) если не хранит, то вся эта система получится совсем плохо. Должна быть ссылка и при проведении и отмене проведения делать нужные действия
7. grafit 8 02.09.24 07:56 Сейчас в теме
Процедура ПриЗаписи()
...
Если ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.Заказ") тогда
//тут варианты: Статус = "Впроизводстве" или как там у вас, Справочник, Константа и т.п....
КонецЕсли;
...

Контроль логики опускаю.
8. user2033930 02.09.24 08:04 Сейчас в теме
(7) Не найдена переменная ДокументОснование (((
9. grafit 8 02.09.24 08:10 Сейчас в теме
(8) Значит у документа нет такого реквизита, либо он иначе называется. Или это вообще реквизит формы.
10. user2033930 02.09.24 08:12 Сейчас в теме
(9) Как это нету? Если документ вводится на основании, то должна же платформа это как-то фиксировать?
13. Ravil_ 02.09.24 08:21 Сейчас в теме
(10) платформа не должна этим заниматься, это уже как человек реализует
15. user2033930 02.09.24 08:27 Сейчас в теме
(13) "Все в вашей 1С через одно место!" (С) Типовой посетитель Инфостарта.
11. grafit 8 02.09.24 08:14 Сейчас в теме
Как называется этот реквизит?
Оставьте свое сообщение

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