Как получить номер документа при создании документа

1. Geophysic 17.05.23 10:04 Сейчас в теме
Добрый день! Отправлю электронные письма и там должен указываться номер документа, при его создании номер документа пустой и создается только после записи или проведения, можно ли получить как-то номер документа при создании?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. DesertPunk 17.05.23 10:30 Сейчас в теме
(1) Посмотри код, который создает движения по регистрам (проведение) в модуле объекта. Ты ж проводишь новый документ без предварительной записи. Просто создал и нажал "Провести и закрыть". До нажатия ссылки на объект еще не было, а после - ссылка уже в регистратор регистра прописана.
4. Geophysic 17.05.23 10:49 Сейчас в теме
(2) И как эту предварительную запись создать? Впервые с этим сталкиваюсь

Процедура ОбработкаПроведения(Отказ, Режим)

Процедура ОбработкаПроведения(Отказ, Режим)
	
	МаксимальноеКоличествоСекундЗаДень = 86400; // 3600 * 24 = 86400
	
	// Регистр "ЛистыУчетаРабочегоВремени":
	Движения.ЗаявкиКлиентов.Записывать = Истина;
	
	Для Каждого СтрТЧ Из Работы Цикл
		
		Если СтрТЧ.ДатаНач <> Дата(1,1,1) И СтрТЧ.ДатаКон <> Дата(1,1,1)
			И СтрТЧ.ДатаНач < СтрТЧ.ДатаКон Тогда
			//И НачалоМесяца(СтрТЧ.ДатаНач) = НачалоМесяца(Дата)
			//И НачалоМесяца(СтрТЧ.ДатаКон) = НачалоМесяца(Дата) Тогда
			
			РазницаСекунд = СтрТЧ.ДатаКон - СтрТЧ.ДатаНач;
			
			Если РазницаСекунд < МаксимальноеКоличествоСекундЗаДень Тогда
			
		        Движение = Движения.ЗаявкиКлиентов.Добавить();
		
				Движение.Период           = Дата;
				Движение.Организация      = Организация;
				Движение.Сотрудник        = СотрудникФизЛиц;
				Движение.Контрагент       = Контрагент;
				Движение.Договор          = Договор;
				Движение.ВидРаботы        = СтрТЧ.ВидРаботы;
				Движение.ДатаНач          = СтрТЧ.ДатаНач;
				Движение.ДатаКон          = СтрТЧ.ДатаКон;
				Движение.Согласован       = Согласован;
				Движение.Акцептован       = Акцептован;
				Движение.НомерСтроки      = Номер;
				
				Движение.КоличествоСекунд = РазницаСекунд;
				Движение.КоличествоЧасов  = СтрТЧ.КоличествоЧасов;
				Движение.КолвоРабочихДней = СтрТЧ.КолвоРабочихДней;
				
				Движение.СодержаниеРаботы = СтрТЧ.СодержаниеРаботы;
				Движение.ДатаСогласования = ДатаСогласования;
				
			КонецЕсли;
			
		КонецЕсли;	
		
	КонецЦикла;

КонецПроцедуры
Показать
9. DesertPunk 17.05.23 11:45 Сейчас в теме
(4) Поробуй
Процедура ПриЗаписи()
	 Н = ЭтотОбъект.Номер;
	 Сообщить(Н);
КонецПроцедуры
13. Geophysic 17.05.23 14:38 Сейчас в теме
(11) Тогда я получу
(9)
Процедура ПриЗаписи()
Н = ЭтотОбъект.Номер;
Сообщить(Н);
КонецПроцедуры


Значение получил, не могу передать его на форму в свое сообщение
14. Xershi 1474 17.05.23 14:40 Сейчас в теме
(13) так этот код на сервере, там нет формы... Они бывают только на клиенте.
15. Geophysic 17.05.23 14:42 Сейчас в теме
(14)Понятно, я сделал как вы писали "После записи" номер получил, только у меня теперь не работает один алгоритм из-за того что он работает на "После записи"
16. DesertPunk 17.05.23 14:43 Сейчас в теме
17. Geophysic 17.05.23 14:47 Сейчас в теме
19. Geophysic 17.05.23 14:59 Сейчас в теме
(16)
	 ДокументОбъект = РеквизитФормыВЗначение("Объект");
     ДокументОбъект.ПриЗаписи();
20. DesertPunk 17.05.23 16:46 Сейчас в теме
(19)Моя твоя совсем плохо понимать. У тебя есть общий модуль, который работает почтой?
Типа такого:
Почта.ОтправитьСообщениеПользователям(ТемаСообщения, ТекстСообщения, МассивПолучателей, ДокументОбъект.Ссылка);
21. Geophysic 18.05.23 07:27 Сейчас в теме
(20) Сообщения уходят из модуля формы
23. DesertPunk 18.05.23 15:07 Сейчас в теме
(21) Опиши подробнее. Что за форма, как открывается, почему открывается, когда открывается. У тебя где-то затык. Почта рассылается и из формы, и из модуля объекта, и из внешней обработки.
Можно даже подкат к коллеге через телегу автоматизировать:
&НаСервере 
Процедура ЗапуститьОбработку(Источник) Экспорт
	День = ДеньНедели(ТекущаяДата());
	Пользователь = Справочники.Пользователи.НайтиПоНаименованию("*****");
	СписокДляХраненияАдресатов = Новый СписокЗначений;
	СписокДляХраненияАдресатов.Добавить(Пользователь);
	НачатьТранзакцию();
	
	Попытка
		
		Для каждого Адресат Из СписокДляХраненияАдресатов Цикл
			Н = Гиф(День); 
			Т = Текст(День);
			ТекстВопроса = Т + Н;		
			Телеграм = Справочники.Телеграм.СоздатьЭлемент();
			Телеграм.Пользователь 	= Адресат.Значение;
			Телеграм.ДатаСообщения 	= ТекущаяДата();
			Телеграм.ВТелеграм		= ТекстВопроса;
			Телеграм.Кнопки 		= "";
			Попытка
				Телеграм.Записать();
			Исключение
				
			КонецПопытки;
		КонецЦикла;
		
		ЗафиксироватьТранзакцию();
	Исключение
		ОтменитьТранзакцию();
	КонецПопытки;
КонецПроцедуры

&НаСервере 
Функция Гиф(День)
	Стр = "";
	Если День = 1 Тогда
		Стр = "🌹"; 
	ИначеЕсли День = 2 Тогда 
		Стр = "😏";
	ИначеЕсли День = 3 Тогда 
		Стр = "🌻";	
	ИначеЕсли День = 4 Тогда 
		Стр = "	😘";
	ИначеЕсли День = 5 Тогда 
		Стр = "🌸";		
	ИначеЕсли День = 6 Тогда 
		Стр = "😊";
	ИначеЕсли День = 7 Тогда 
		Стр = "🏵";		
	КонецЕсли;	
	Возврат Стр;
КонецФункции	

&НаСервере 
Функция Текст(День)
		Стр = "";
	Если День = 1 Тогда
		Стр = "******, ты сегодня прекрасно выглядишь "; 
	ИначеЕсли День = 2 Тогда 
		Стр = "******, доброго утра и хорошего настроения ";
	ИначеЕсли День = 3 Тогда 
		Стр = "******, ты очень красивая ";	
	ИначеЕсли День = 4 Тогда 
		Стр = "******, ты сегодня прекрасно выглядишь ";
	ИначеЕсли День = 5 Тогда 
		Стр = "******, ты очень красивая ";		
	ИначеЕсли День = 6 Тогда 
		Стр = "******, доброго утра и хорошего настроения ";
	ИначеЕсли День = 7 Тогда 
		Стр = "******, ты сегодня прекрасно выглядишь ";		
	КонецЕсли;	
	Возврат Стр;
КонецФункции	
Показать
24. Geophysic 18.05.23 15:09 Сейчас в теме
(23) ппхпхпх, спасибо уже сделал
3. nomad_irk 71 17.05.23 10:41 Сейчас в теме
(1)можно, но это повлечет нарушение уникальности нумерации документов.

Отправляйте письма по уже созданным документам, а не при попытке записи нового документа в ИБ
22. Kilka_v_Kepke 18.05.23 12:42 Сейчас в теме
(1)установите номер сами(УстановитьНовыйНомер в синтаксис помощнике гляньте)
5. toxin74 17.05.23 11:08 Сейчас в теме
Прежде чем документ проводиться он записывается, в этом случае возможно получить номер после записи. Если правильно понял вопрос.
6. Geophysic 17.05.23 11:09 Сейчас в теме
(5)
т проводиться он записывается, в этом случае возможно получить номер после записи. Если правильно понял вопрос.

Вопрос в том как получить номер при создании документа то есть до записи или до проведения, чтобы документ создавался уже с номером
7. toxin74 17.05.23 11:14 Сейчас в теме
(6)Вряд ли у не записанного документа можно получить номер, только ссылку нового. Если до проведения, то подразумевается что, объект уже записан, а значит есть номер.
8. PlatonStepan 38 17.05.23 11:42 Сейчас в теме
Тут вопрос когда именно отправляются электронные письма, у вас это триггер на проведение? то есть в транзакции проведения.
Если так, то это не корректно, отправка должна отрабатываться уже после закрытия транзакции проведения.

здесь лучше создать план обмена или регистр сведений, в которых будут фиксироваться созданные документы, а какой нибудь регламент отрабатывать их отправку.
10. Geophysic 17.05.23 12:40 Сейчас в теме
(8) Письма отправляются при записи или проведении документа если отработали определенные действия
11. Xershi 1474 17.05.23 12:44 Сейчас в теме
(10) почему это не сделать после записи?
12. user1863362 17.05.23 12:58 Сейчас в теме
(10) А вот надо отправлять письмо не "при записи или проведении документа", а после того как успешно "отработали определенные действия" над успешно записанным документом. Потому как выставит потом какой-нибудь геофизик где-нибудь флаг отказа, и всё. Документ не записан, а почта уже ушла - беги отзывай.
Оставьте свое сообщение
Вакансии
Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день