Документооборот: Перепоручить задачу из почты

Публикация № 587884 13.02.17

Функциональные решения - Документооборот и делопроизводство (СЭД)

Документооборот Задачи Электронная почта

Смысл доработки - в письмах-командах добавляется команда-ссылка "Перепоручить". При клике создается письмо, если в копию поставить email пользователей СЭД и отправить письмо, то данная задача будет перепоручена данным пользователям. Удобно для линейных руководителей - получив задачу от СЭД в почту, достаточно двух кликов, чтобы не заходя в 1С, поручить дело подчиненному.

1. Необходимо сделать новый элемент Перечисления "ВариантыВыполненияПроцессовИЗадач" со значением "Перепоручить"

2. В модуле менеджера Бизнес-процесса "Исполнение" добавить в

Функцию ВариантыОтветовДляВыполненияЗадачиПоПочте 

в этом месте

Если ТочкаМаршрута = ТочкиМаршрута.Исполнить
        ИЛИ ТочкаМаршрута = ТочкиМаршрута.ОтветственноеИсполнение Тогда
        
        Результат.СписокВариантовОтветов.Добавить(
            Перечисления.ВариантыВыполненияПроцессовИЗадач.Положительно,
            НСтр("ru = 'Исполнено'"));         
            
        Результат.ИспользоватьКомментарий = Истина;
            
    ИначеЕсли ТочкаМаршрута = ТочкиМаршрута.Контролировать Тогда

добавить пару строчек таким образом

Если ТочкаМаршрута = ТочкиМаршрута.Исполнить
		ИЛИ ТочкаМаршрута = ТочкиМаршрута.ОтветственноеИсполнение Тогда
		
		Результат.СписокВариантовОтветов.Добавить(
			Перечисления.ВариантыВыполненияПроцессовИЗадач.Положительно,
			НСтр("ru = 'Исполнено'"));
			
		//-код для вставки-	
		Результат.СписокВариантовОтветов.Добавить(
			Перечисления.ВариантыВыполненияПроцессовИЗадач.Перепоручить,
			НСтр("ru = 'Перепоручить'"));			
		//-конец кода для вставки-
			
		Результат.ИспользоватьКомментарий = Истина;
			
	ИначеЕсли ТочкаМаршрута = ТочкиМаршрута.Контролировать Тогда

3. В модуле менеджера Бизнес-процесса "Ознакомление" добавить в

Функцию ВариантыОтветовДляВыполненияЗадачиПоПочте 

в этом месте

Если ТочкаМаршрута = ТочкиМаршрута.Ознакомиться Тогда
		Результат.СписокВариантовОтветов.Добавить(
			Перечисления.ВариантыВыполненияПроцессовИЗадач.Положительно,
			НСтр("ru = 'Ознакомился'"));
						
		Результат.ИспользоватьКомментарий = Истина;
КонецЕсли;

добавить так:

Если ТочкаМаршрута = ТочкиМаршрута.Ознакомиться Тогда
		Результат.СписокВариантовОтветов.Добавить(
			Перечисления.ВариантыВыполненияПроцессовИЗадач.Положительно,
			НСтр("ru = 'Ознакомился'"));
			
		//-код для вставки-			
		Результат.СписокВариантовОтветов.Добавить(
			Перечисления.ВариантыВыполненияПроцессовИЗадач.Перепоручить,
			НСтр("ru = 'Перепоручить'"));			
		//-конец кода-
	
		Результат.ИспользоватьКомментарий = Истина;
	КонецЕсли;

4. Делаем Общий модуль, там мы будем хранить функции, которые будут для нас делать дополнительную обработку, допустим назовем его ТТТ_Задачи

5. Записываем в него следующий код

Функция РазбитьСтроку(ИсходнаяСтрока,Разделитель) Экспорт
	Рез = Новый Массив;
	Строки = СтрЗаменить(ИсходнаяСтрока,Разделитель,Символы.ПС);
	Для Ном = 1 По СтрЧислоСтрок(Строки) Цикл
		Рез.Добавить(СтрПолучитьСтроку(Строки,Ном));
	КонецЦикла;
	Возврат Рез;
КонецФункции

Функция ПолучитьАдресаЭлектроннойПочты(Знач АдресЭлектроннойПочтыСтр) Экспорт
	
	Результат = Новый Массив;
	Адреса = Новый Массив;
	
	Адреса = РазбитьСтроку(АдресЭлектроннойПочтыСтр,";");
	
	Для НомЭлПочты = 0 По Адреса.Количество()-1 Цикл
		
		СтрокаАдреса = РаботаСоСтроками.РазложитьПредставлениеАдресаЭлектроннойПочты(Адреса[НомЭлПочты]);	
		
		Если Не РаботаСоСтроками.ЭтоАдресЭлектроннойПочты(СтрокаАдреса.Адрес) Тогда
			Возврат ложь;
		Иначе
			Результат.Добавить (СтрокаАдреса.Адрес);
		КонецЕсли;
		
	КонецЦикла;

	Возврат Результат;
	
КонецФункции

Процедура СоздатьПереподчинениеИзПочты(ТекЗадача, Автор, Исполнитель,Комментарий="") Экспорт

	Попытка
	БП = БизнесПроцессы["Исполнение"].СоздатьБизнесПроцесс();
	БП.Автор = Автор;
	БП.Контролер = Автор;
	БП.Важность = ТекЗадача.Важность;
	БП.ГлавнаяЗадача = ТекЗадача.Ссылка;
	БП.Наименование = СокрЛП(БП.Метаданные().Имя) + ": " + ТекЗадача.Наименование;
	если сокрлп(Комментарий)<>"" тогда
		БП.Описание = СокрЛП(ТекЗадача.Описание + Символы.ПС + Символы.ВК + БП.Автор.Наименование + ": " + Комментарий);
	иначе
		БП.Описание = СокрЛП(ТекЗадача.Описание);
	конецесли;
	БП.СрокИсполненияПроцесса = ТекЗадача.СрокИсполнения;
	если БП.СрокИсполненияПроцесса =  Дата(1, 1, 1) тогда 
		НоваяДата = КонецДня(ТекущаяДата()) + 604800;
		
		если деньнедели(НоваяДата)=6 тогда
			НоваяДата = КонецДня(ТекущаяДата()) + 86400*2;
		иначеесли деньнедели(НоваяДата)=7 тогда
			НоваяДата = КонецДня(ТекущаяДата()) + 86400;
		конецесли;	
		БП.СрокИсполненияПроцесса = НоваяДата;
	конецесли;
	НовИспонитель = БП.Исполнители.Добавить();
	НовИспонитель.Исполнитель = Исполнитель;
	БП.Дата = ТекущаяДата();
	Если Не ТипЗнч(ТекЗадача.БизнесПроцесс) = Тип("БизнесПроцессСсылка.Согласование") и Не ТипЗнч(ТекЗадача.БизнесПроцесс) = Тип("БизнесПроцессСсылка.Утверждение") Тогда
		БП.ФБ_ПерепоручитьИЗакрыть = Истина;
	Иначе
		БП.ФБ_ПерепоручитьИЗакрыть = Ложь;
	КонецЕсли;       
	Если БП.Метаданные().Реквизиты.Найти("УзелОбмена") <> Неопределено Тогда
	    БП.УзелОбмена = ТекЗадача.БизнесПроцесс.УзелОбмена;
	КонецЕсли;
	Если БП.Метаданные().Реквизиты.Найти("ВариантИсполнения") <> Неопределено Тогда
		БП.ВариантИсполнения = Перечисления.ВариантыМаршрутизацииЗадач.Параллельно;
	КонецЕсли;   
	
	ЗадачаОбъект = ТекЗадача.ПолучитьОбъект();
	ЗадачаОбъект.ПринятаКИсполнению = Истина;
	
	УстановитьПривилегированныйРежим(Истина);
	Если БП.Метаданные().ТабличныеЧасти.Найти("Предметы") <> Неопределено и ТекЗадача.БизнесПроцесс.Метаданные().ТабличныеЧасти.Найти("Предметы") <> Неопределено Тогда
		Для Каждого Стр Из ТекЗадача.БизнесПроцесс.Предметы Цикл
			Мультипредметность.ДобавитьПредмет(БП,Стр.Предмет);
		Конеццикла;
	КонецЕсли;
	БП.Записать();
	БП.Старт();
	ЗадачаОбъект.Записать();
	УстановитьПривилегированныйРежим(Ложь);
		
	Исключение
		ОтменитьТранзакцию();
		РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
			"нет", 
			Перечисления.РезультатВыполненияЗадачиПоПочте.Ошибка,
			ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),
			ТекЗадача);
	КонецПопытки;
		
КонецПроцедуры

6. В общем модуле "ВыполнениеЗадачПоПочтеСервер" нужно сделать такие изменения

в функции ПолучитьОтветыВВидеСсылокMailto 

этот код 

			ТекстОтвета = НСтр("ru = '%1
				|
				|________________________________________________
				|Это служебная информация, необходимая для выполнения задачи.
				|Не удаляйте и не изменяйте ее!
				|
				|*Задача:%2
				|*Ответ:%3
				|
				|'", КодЯзыкаПолучателя);

поменять на этот

		если ВариантОтвета.Значение = Перечисления.ВариантыВыполненияПроцессовИЗадач.Перепоручить тогда
			ТекстОтвета = НСтр("ru = '%1
				|
				|________________________________________________
				|Это служебная информация, необходимая для выполнения задачи.
				|Не удаляйте и не изменяйте ее!
				|
				|Для данного варианта ответа обязательно заполнение поля КОПИЯ в e-mail
				|В данном поле указываются пользователи СЭД для перепоручения
				|
				|*Задача:%2
				|*Ответ:%3
				|
				|'", КодЯзыкаПолучателя);		
		иначе
			ТекстОтвета = НСтр("ru = '%1
				|
				|________________________________________________
				|Это служебная информация, необходимая для выполнения задачи.
				|Не удаляйте и не изменяйте ее!
				|
				|*Задача:%2
				|*Ответ:%3
				|
				|'", КодЯзыкаПолучателя);
		конецесли;

в функции ПолучитьЧисловойИдентификаторВариантаОтвета добавить в конец условия это

	ИначеЕсли ВариантОтвета =
		Перечисления.ВариантыВыполненияПроцессовИЗадач.Перепоручить Тогда
		
		РезультатОтвета = "4";
		
	КонецЕсли;

в функции ПолучитьВариантВыполнениеЗадачиПоПоЧисловомуИдентификатору в конец условия добавить это

	ИначеЕсли НомерРезультата = "4" Тогда
		ВариантВыполненияЗадачи =
			Перечисления.ВариантыВыполненияПроцессовИЗадач.Перепоручить;
	Иначе
		ВариантВыполненияЗадачи = Неопределено;
	КонецЕсли;

функцию ОбработатьСообщениеОВыполненииЗадачи привожу с комментариями целиком, в ней основной код

Функция ОбработатьСообщениеОВыполненииЗадачи(Сообщение)
	
	НачатьТранзакцию();
	
	ЗадачаСсылка = ПредопределенноеЗначение("Задача.ЗадачаИсполнителя.ПустаяСсылка");
	
	Попытка
		
		//-код для вставки-
		ПараметрыКопии = ТТТ_Задачи.ПолучитьАдресаЭлектроннойПочты(Сообщение.Копия);
		//-конец кода для вставки-
		ПараметрыОтправителя = РаботаСоСтроками.РазложитьПредставлениеАдресаЭлектроннойПочты(Сообщение.Отправитель);
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
			"ВЫБРАТЬ РАЗЛИЧНЫЕ
			|	ПользователиКонтактнаяИнформация.Ссылка КАК Пользователь
			|ПОМЕСТИТЬ НайденныеПользователиПоАдресу
			|ИЗ
			|	Справочник.Пользователи.КонтактнаяИнформация КАК ПользователиКонтактнаяИнформация
			|ГДЕ
			|	ПользователиКонтактнаяИнформация.АдресЭП ПОДОБНО """" + &АдресЭП + """"
			|
			|ОБЪЕДИНИТЬ
			|
			|ВЫБРАТЬ РАЗЛИЧНЫЕ
			|	СпособыУведомленияПользователей.Пользователь
			|ИЗ
			|	РегистрСведений.СпособыУведомленияПользователей КАК СпособыУведомленияПользователей
			|ГДЕ
			|	СпособыУведомленияПользователей.ДанныеСпособа ПОДОБНО """" + &АдресЭП + """"
			|	И СпособыУведомленияПользователей.СпособУведомления = ЗНАЧЕНИЕ(Перечисление.СпособыУведомления.ПоПочте)
			|;
			|
			|////////////////////////////////////////////////////////////////////////////////
			|ВЫБРАТЬ
			|	НайденныеПользователиПоАдресу.Пользователь
			|ИЗ
			|	НайденныеПользователиПоАдресу КАК НайденныеПользователиПоАдресу
			|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
			|		ПО НайденныеПользователиПоАдресу.Пользователь = Пользователи.Ссылка
			|ГДЕ
			|	Пользователи.ПометкаУдаления = ЛОЖЬ
			|	И Пользователи.Служебный = ЛОЖЬ
			|	И Пользователи.Недействителен = ЛОЖЬ";
			
		Запрос.УстановитьПараметр("АдресЭП", ПараметрыОтправителя.Адрес);
		Выборка = Запрос.Выполнить().Выбрать();
		
		Если Выборка.Следующий() Тогда
			ИсполнительЗадачиПоЭлАдресу = Выборка.Пользователь;
			КодЯзыкаИсполнителя = ЛокализацияКонфигурацииПовтИсп.КодЯзыкаПользователя(ИсполнительЗадачиПоЭлАдресу);
		Иначе
			ИсполнительЗадачиПоЭлАдресу = Неопределено;
			КодЯзыкаИсполнителя = ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка();
		КонецЕсли;
		
		ИдентификаторыЗадачи = ПолучитьСтрокиСообщенияПоЗаголовкуПоля(
			Сообщение,
			НСтр( "ru = '*Задача:'", КодЯзыкаИсполнителя),
			36);
			
		ИдентификаторыОтвета = ПолучитьСтрокиСообщенияПоЗаголовкуПоля(
			Сообщение,
			НСтр( "ru = '*Ответ:'", КодЯзыкаИсполнителя),
			1);
			
		Если ИдентификаторыЗадачи.Количество() = 0 Тогда
			
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ВСообщенииНеУказанИдентификаторЗадачи,,
				ЗадачаСсылка);
				
			ОтправитьУведомлениеОбОшибке(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ВСообщенииНеУказанИдентификаторЗадачи,
				ЗадачаСсылка,
				КодЯзыкаИсполнителя);
			
			ЗафиксироватьТранзакцию();
			Возврат Истина;
			
		КонецЕсли;
			
		Если ИдентификаторыЗадачи.Количество() > 1 Тогда
			
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ВСообщенииУказаноНесколькоИдентификаторовЗадачи,,
				ЗадачаСсылка);
				
			ОтправитьУведомлениеОбОшибке(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ВСообщенииУказаноНесколькоИдентификаторовЗадачи,
				ЗадачаСсылка,
				КодЯзыкаИсполнителя);
			
			ЗафиксироватьТранзакцию();
			Возврат Истина;
			
		КонецЕсли;
		
		ЗадачаПоИдентификатору = Задачи.ЗадачаИсполнителя.ПолучитьСсылку(
			Новый УникальныйИдентификатор(ИдентификаторыЗадачи[0]));
			
		Запрос = Новый Запрос;
		Запрос.Текст = 
			"ВЫБРАТЬ
			|	ЗадачаИсполнителя.Ссылка
			|ИЗ
			|	Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
			|ГДЕ
			|	ЗадачаИсполнителя.Ссылка = &Ссылка";
		Запрос.УстановитьПараметр("Ссылка", ЗадачаПоИдентификатору);
		
		Если Запрос.Выполнить().Пустой() Тогда
			
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение, Перечисления.РезультатВыполненияЗадачиПоПочте.ЗадачаНеНайдена,,
				ЗадачаСсылка);
				
			ОтправитьУведомлениеОбОшибке(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ЗадачаНеНайдена,
				ЗадачаСсылка,
				КодЯзыкаИсполнителя);
			
			ЗафиксироватьТранзакцию();
			Возврат Истина;
			
		КонецЕсли;
		
		ЗадачаСсылка = ЗадачаПоИдентификатору;
		
		Если ИдентификаторыОтвета.Количество() = 0 Тогда
			
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ВСообщенииНеУказанИдентификаторОтвета,,
				ЗадачаСсылка);
			
			ОтправитьУведомлениеОбОшибке(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ВСообщенииНеУказанИдентификаторОтвета,
				ЗадачаСсылка,
				КодЯзыкаИсполнителя);
			
			ЗафиксироватьТранзакцию();
			Возврат Истина;
			
		КонецЕсли;
		
		Если ИдентификаторыОтвета.Количество() > 1 Тогда
			
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ВСообщенииУказаноНесколькоИдентификаторовОтвета,,
				ЗадачаСсылка);
			
			ОтправитьУведомлениеОбОшибке(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ВСообщенииУказаноНесколькоИдентификаторовОтвета,
				ЗадачаСсылка,
				КодЯзыкаИсполнителя);
			
			ЗафиксироватьТранзакцию();
			Возврат Истина;
			
		КонецЕсли;
		
		ВариантВыполненияЗадачи =
			ПолучитьВариантВыполнениеЗадачиПоПоЧисловомуИдентификатору(ИдентификаторыОтвета[0]);
		
		Если ВариантВыполненияЗадачи = Неопределено Тогда
					
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение, Перечисления.РезультатВыполненияЗадачиПоПочте.ОтветНеНайден,,
				ЗадачаСсылка);
				
			ОтправитьУведомлениеОбОшибке(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ОтветНеНайден,
				ЗадачаСсылка,
				КодЯзыкаИсполнителя);
			
			ЗафиксироватьТранзакцию();
			Возврат Истина;
			
		КонецЕсли;
			
		Если НЕ ПроверитьСоответсвиеРезультатВыполненияИЗадачи(
			ЗадачаСсылка,
			ВариантВыполненияЗадачи) Тогда
			
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ЗадачеНеСоответствуетЗначениеОтвета,,
				ЗадачаСсылка);
			
			ОтправитьУведомлениеОбОшибке(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ЗадачеНеСоответствуетЗначениеОтвета,
				ЗадачаСсылка,
				КодЯзыкаИсполнителя);
			
			ЗафиксироватьТранзакцию();
			Возврат Истина;
			
		КонецЕсли;
		
		Если Выборка.Количество() > 1 Тогда
			
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ПоАдресуОтправителяНайденоНесколькоИсполнителей,,
				ЗадачаСсылка);
			
			ОтправитьУведомлениеОбОшибке(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ПоАдресуОтправителяНайденоНесколькоИсполнителей,
				ЗадачаСсылка,
				КодЯзыкаИсполнителя);
			
			ЗафиксироватьТранзакцию();
			Возврат Истина;
			
		ИначеЕсли Выборка.Количество() = 0 Тогда
			
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ПоАдресуОтправителяНеНайденИсполнительЗадачи,,
				ЗадачаСсылка);
			
			ОтправитьУведомлениеОбОшибке(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ПоАдресуОтправителяНеНайденИсполнительЗадачи,
				ЗадачаСсылка,
				КодЯзыкаИсполнителя);
			
			ЗафиксироватьТранзакцию();
			Возврат Истина;
			
		КонецЕсли;
		
		//-код для вставки-
		если ВариантВыполненияЗадачи=Перечисления.ВариантыВыполненияПроцессовИЗадач.Перепоручить тогда
			АвторЗадачиПоЭлАдресу = ИсполнительЗадачиПоЭлАдресу;

			если не ТипЗнч(ПараметрыКопии)=Тип("Массив") тогда
				РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
					Сообщение,
					Перечисления.РезультатВыполненияЗадачиПоПочте.Ошибка,"в поле КОПИЯ отсутствует email пользователя СЭД, задача не создана",
					ЗадачаСсылка);
				
				ОтправитьУведомлениеОбОшибке(
					"в поле КОПИЯ отсутствует email пользователя СЭД, задача не создана",
					Перечисления.РезультатВыполненияЗадачиПоПочте.Ошибка,
					ЗадачаСсылка,
					КодЯзыкаИсполнителя);
				
				ЗафиксироватьТранзакцию();
				Возврат Истина;				
			конецесли;

			Для Ном = 0 По ПараметрыКопии.Количество()-1 Цикл
				копия = ПараметрыКопии[Ном];
				
				Запрос = Новый Запрос;
				Запрос.Текст = 
					"ВЫБРАТЬ РАЗЛИЧНЫЕ
					|	ПользователиКонтактнаяИнформация.Ссылка КАК Пользователь
					|ПОМЕСТИТЬ НайденныеПользователиПоАдресу
					|ИЗ
					|	Справочник.Пользователи.КонтактнаяИнформация КАК ПользователиКонтактнаяИнформация
					|ГДЕ
					|	ПользователиКонтактнаяИнформация.АдресЭП ПОДОБНО """" + &АдресЭП + """"
					|
					|ОБЪЕДИНИТЬ
					|
					|ВЫБРАТЬ РАЗЛИЧНЫЕ
					|	СпособыУведомленияПользователей.Пользователь
					|ИЗ
					|	РегистрСведений.СпособыУведомленияПользователей КАК СпособыУведомленияПользователей
					|ГДЕ
					|	СпособыУведомленияПользователей.ДанныеСпособа ПОДОБНО """" + &АдресЭП + """"
					|	И СпособыУведомленияПользователей.СпособУведомления = ЗНАЧЕНИЕ(Перечисление.СпособыУведомления.ПоПочте)
					|;
					|
					|////////////////////////////////////////////////////////////////////////////////
					|ВЫБРАТЬ
					|	НайденныеПользователиПоАдресу.Пользователь
					|ИЗ
					|	НайденныеПользователиПоАдресу КАК НайденныеПользователиПоАдресу
					|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
					|		ПО НайденныеПользователиПоАдресу.Пользователь = Пользователи.Ссылка
					|ГДЕ
					|	Пользователи.ПометкаУдаления = ЛОЖЬ
					|	И Пользователи.Служебный = ЛОЖЬ
					|	И Пользователи.Недействителен = ЛОЖЬ";
					
				Запрос.УстановитьПараметр("АдресЭП", копия);
				ВыборкаКопия = Запрос.Выполнить().Выбрать();
				
				Если ВыборкаКопия.Количество() > 1 Тогда
					
					РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
						Сообщение,
						Перечисления.РезультатВыполненияЗадачиПоПочте.Ошибка,"в поле КОПИЯ адрес электронной почты которому соответствуют более одного исполнителя",
						ЗадачаСсылка);
					
					ОтправитьУведомлениеОбОшибке(
						"в поле КОПИЯ адрес электронной почты которому соответствуют более одного исполнителя",
						Перечисления.РезультатВыполненияЗадачиПоПочте.Ошибка,
						ЗадачаСсылка,
						КодЯзыкаИсполнителя);
					
					ЗафиксироватьТранзакцию();
					Возврат Истина;
					
				ИначеЕсли ВыборкаКопия.Количество() = 0 Тогда
					
					РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
						Сообщение,
						Перечисления.РезультатВыполненияЗадачиПоПочте.Ошибка,"в поле КОПИЯ адрес электронной почты которому не соответствует ни один исполнитель",
						ЗадачаСсылка);
					
					ОтправитьУведомлениеОбОшибке(
						"в поле КОПИЯ адрес электронной почты которому не соответствует ни один исполнитель",
						Перечисления.РезультатВыполненияЗадачиПоПочте.Ошибка,
						ЗадачаСсылка,
						КодЯзыкаИсполнителя);
					
					ЗафиксироватьТранзакцию();
					Возврат Истина;
					
				КонецЕсли;
				
				РеквизитыЗадачи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗадачаСсылка,
					"ТекущийИсполнитель,
					|Выполнена,
					|СостояниеБизнесПроцесса,
					|ПометкаУдаления");
				
				ИсполнительЗадачи = РеквизитыЗадачи.ТекущийИсполнитель;
				ФактическийИсполнительЗадачи = Справочники.Пользователи.ПустаяСсылка();
					
				Запрос = Новый Запрос;
				Запрос.Текст = 
					"ВЫБРАТЬ РАЗЛИЧНЫЕ
					|	ИсполнителиРолейИДелегаты.ИсполнительДелегат
					|ИЗ
					|	РегистрСведений.ИсполнителиРолейИДелегаты КАК ИсполнителиРолейИДелегаты
					|ГДЕ
					|	ИсполнителиРолейИДелегаты.РольПользователь = &РольПользователь
					|	И ИсполнителиРолейИДелегаты.ИсполнительДелегат = &ИсполнительЗадачи
					|	И ИсполнителиРолейИДелегаты.ИмяОбластиДелегирования В ("""", ""ПроцессыИЗадачи"")";
					
				Запрос.УстановитьПараметр("РольПользователь", РеквизитыЗадачи.ТекущийИсполнитель);
				
				Запрос.УстановитьПараметр("ИсполнительЗадачи", АвторЗадачиПоЭлАдресу);
				
				Результат = Запрос.Выполнить();
				
				Если Результат.Пустой() Тогда
					РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
						Сообщение,
						Перечисления.РезультатВыполненияЗадачиПоПочте.Ошибк,"Отправитель этого письма не является исполнителем по данной задаче",
						ЗадачаСсылка);
					
					ОтправитьУведомлениеОбОшибке(
						"Отправитель этого письма не является исполнителем по данной задаче",
						Перечисления.РезультатВыполненияЗадачиПоПочте.ДляЗадачиОпределенДругойИсполнитель,
						ЗадачаСсылка,
						КодЯзыкаИсполнителя);
						
					ЗафиксироватьТранзакцию();
					Возврат Истина;				
				конецесли;
				
				ТекстОкончанияКомментария = НСтр("ru = '________________________________________________'",
					КодЯзыкаИсполнителя);
				НачальнаяПозицияКомментария = 1;
				КонечнаяПозицияКомментария = Найти(Сообщение.Текст, ТекстОкончанияКомментария);
				КоличествоСимволов = КонечнаяПозицияКомментария - НачальнаяПозицияКомментария;
				КомментарийВСообщении = Сред(Сообщение.Текст, НачальнаяПозицияКомментария, КоличествоСимволов);
				
				КомментарийВСообщении = СокрЛП(КомментарийВСообщении);
				
				КомментарийВСообщении = КомментарийВСообщении + ?(ЗначениеЗаполнено(КомментарийВСообщении), "
					|", "") + НСтр("ru = ''",
					КодЯзыкаИсполнителя);
							
				Если ТипЗнч(АвторЗадачиПоЭлАдресу) = Тип("СправочникСсылка.Пользователи") Тогда
					
					Если РеквизитыЗадачи.СостояниеБизнесПроцесса <> Перечисления.СостоянияБизнесПроцессов.Активен
					Или РеквизитыЗадачи.ПометкаУдаления Тогда
					
					РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
						Сообщение,
						Перечисления.РезультатВыполненияЗадачиПоПочте.ЗадачаНеАктивна,,
						ЗадачаСсылка);
					
					Иначе
						
						Если ВыборкаКопия.Следующий() Тогда
							
							ИсполнительЗадачиПоЭлАдресу = ВыборкаКопия.Пользователь;
							КодЯзыкаИсполнителя = ЛокализацияКонфигурацииПовтИсп.КодЯзыкаПользователя(ИсполнительЗадачиПоЭлАдресу);
							Если ТипЗнч(ИсполнительЗадачиПоЭлАдресу) = Тип("СправочникСсылка.Пользователи") Тогда
								
								ТТТ_Задачи.СоздатьПереподчинениеИзПочты(ЗадачаСсылка, АвторЗадачиПоЭлАдресу, ИсполнительЗадачиПоЭлАдресу, КомментарийВСообщении);
								
							конецесли;				
							
						КонецЕсли;						
						
					конецесли;

				КонецЕсли;
												
			конеццикла;	
			
		иначе
		//-конец кода для вставки-
		//-дальше идет блок из оригинальной функции -
		РеквизитыЗадачи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗадачаСсылка,
			"ТекущийИсполнитель,
			|Выполнена,
			|СостояниеБизнесПроцесса,
			|ПометкаУдаления");
		
		ИсполнительЗадачи = РеквизитыЗадачи.ТекущийИсполнитель;
		ФактическийИсполнительЗадачи = Справочники.Пользователи.ПустаяСсылка();
			
		Запрос = Новый Запрос;
		Запрос.Текст = 
			"ВЫБРАТЬ РАЗЛИЧНЫЕ
			|	ИсполнителиРолейИДелегаты.ИсполнительДелегат
			|ИЗ
			|	РегистрСведений.ИсполнителиРолейИДелегаты КАК ИсполнителиРолейИДелегаты
			|ГДЕ
			|	ИсполнителиРолейИДелегаты.РольПользователь = &РольПользователь
			|	И ИсполнителиРолейИДелегаты.ИсполнительДелегат = &ИсполнительЗадачи
			|	И ИсполнителиРолейИДелегаты.ИмяОбластиДелегирования В ("""", ""ПроцессыИЗадачи"")";
			
		Запрос.УстановитьПараметр("РольПользователь", РеквизитыЗадачи.ТекущийИсполнитель);
		
		Запрос.УстановитьПараметр("ИсполнительЗадачи", ИсполнительЗадачиПоЭлАдресу);
		
		Результат = Запрос.Выполнить();
		
		Если Результат.Пустой() Тогда
			
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ДляЗадачиОпределенДругойИсполнитель,,
				ЗадачаСсылка);
			
			ОтправитьУведомлениеОбОшибке(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ДляЗадачиОпределенДругойИсполнитель,
				ЗадачаСсылка,
				КодЯзыкаИсполнителя);
				
			ЗафиксироватьТранзакцию();
			Возврат Истина;
		КонецЕсли;
		
		Если ТипЗнч(РеквизитыЗадачи.ТекущийИсполнитель) = Тип("СправочникСсылка.Пользователи") Тогда
			
			ФактическийИсполнительЗадач = Константы.ФактическийИсполнительЗадач.Получить();
			Если ФактическийИсполнительЗадач = Перечисления.ФактическийИсполнительЗадач.ТекущийПользователь
				Или ФактическийИсполнительЗадач = Перечисления.ФактическийИсполнительЗадач.ВыборПриИсполненииЗадачи Тогда
				
				ФактическийИсполнительЗадачи = ИсполнительЗадачиПоЭлАдресу;
			КонецЕсли;
			
		Иначе
			
			ИсполнительЗадачи = ИсполнительЗадачиПоЭлАдресу;
			
		КонецЕсли;
		
		Если РеквизитыЗадачи.Выполнена = Истина
			Или РеквизитыЗадачи.СостояниеБизнесПроцесса <> Перечисления.СостоянияБизнесПроцессов.Активен
			Или РеквизитыЗадачи.ПометкаУдаления Тогда
			
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение,
				Перечисления.РезультатВыполненияЗадачиПоПочте.ЗадачаНеАктивна,,
				ЗадачаСсылка);
			
		Иначе
			
			ТекстОкончанияКомментария = НСтр("ru = '________________________________________________'",
				КодЯзыкаИсполнителя);
			НачальнаяПозицияКомментария = 1;
			КонечнаяПозицияКомментария = Найти(Сообщение.Текст, ТекстОкончанияКомментария);
			КоличествоСимволов = КонечнаяПозицияКомментария - НачальнаяПозицияКомментария;
			КомментарийВСообщении = Сред(Сообщение.Текст, НачальнаяПозицияКомментария, КоличествоСимволов);
			
			КомментарийВСообщении = СокрЛП(КомментарийВСообщении);
			
			КомментарийВСообщении = КомментарийВСообщении + ?(ЗначениеЗаполнено(КомментарийВСообщении), "
				|", "") + НСтр("ru = ''",
				КодЯзыкаИсполнителя);
			
			Параметры = Новый Структура;
			Параметры.Вставить("ВариантВыполнения", ВариантВыполненияЗадачи);
			Параметры.Вставить("Комментарий", КомментарийВСообщении);
			Параметры.Вставить("ИсполнительЗадачиПоПочте", ИсполнительЗадачи);
			
			Если ЗначениеЗаполнено(ФактическийИсполнительЗадачи) Тогда
				Параметры.Вставить("ФактическийИсполнительЗадачи", ФактическийИсполнительЗадачи);
			КонецЕсли;
			
			ОбработатьВложенияВСообщении(ЗадачаСсылка, Сообщение);
			
			РезультатПроверки = БизнесПроцессыИЗадачиСервер.ПроверитьУсловияЗапретаВыполнения(ЗадачаСсылка, Параметры);
			Если РезультатПроверки.ЗапретВыполнения Тогда
				
				РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
					Сообщение,
					Перечисления.РезультатВыполненияЗадачиПоПочте.ЗапретВыполнения,
					РезультатПроверки.ТекстПредупреждения,
					ЗадачаСсылка);
				
				ОтправитьУведомлениеОбОшибке(
					Сообщение,
					Перечисления.РезультатВыполненияЗадачиПоПочте.ЗапретВыполнения,
					ЗадачаСсылка,
					КодЯзыкаИсполнителя,
					РезультатПроверки.ТекстПредупреждения);
				
				ЗафиксироватьТранзакцию();
				
				Возврат Истина;
				
			КонецЕсли;
			
			ВыполнениеЗадачСервер.ВыполнитьЗадачуПоПочте(ЗадачаСсылка, Параметры);
			
			РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
				Сообщение, 
				Перечисления.РезультатВыполненияЗадачиПоПочте.Выполнена,
				Строка(ВариантВыполненияЗадачи) + ". " + КомментарийВСообщении,
				ЗадачаСсылка);
			
		КонецЕсли;
		//-код для вставки-		
		конецесли;
		//-конец кода для вставки-		
		ЗафиксироватьТранзакцию();
		Возврат Истина;
		
	Исключение
		ОтменитьТранзакцию();
		РегистрыСведений.ПротоколВыполненияЗадачПоПочте.ЗаписатьРезультатВыполненияПоСообщению(
			Сообщение, 
			Перечисления.РезультатВыполненияЗадачиПоПочте.Ошибка,
			ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),
			ЗадачаСсылка);
		Возврат Ложь;
	КонецПопытки;
	
КонецФункции

Вот и все изменения.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. NaKa 14.02.17 17:07 Сейчас в теме
Классная идея, ее бы в стандартный функционал добавить надо :)
aabogachev; +1 Ответить
2. ryabov_d 15.02.17 08:59 Сейчас в теме
Если в копии письма указать сотрудника, то ему придет и ответ для системы о перенаправлении, и уведомление о получении новой задачи. Как избежать дублирования, если нужно чтобы уведомления о новых задачах все-таки поступали?
4. alleks23 21.02.17 07:50 Сейчас в теме
(2) Кстати, там же возможны и проблемы с правами, т.к. в задаче права только на участников процесса
zabaluev; +1 Ответить
3. Ioryk 15.02.17 20:06 Сейчас в теме
Оч. полезная разработка. Спасибо !
Оставьте свое сообщение

См. также

Электронная почта в 1С:Документооборот

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Россия Бесплатно (free)

Корпоративная почта является одним из основных способов взаимодействия сотрудников предприятия. Она используется как для массовых рассылок и передачи файлов, так и для предметного обсуждения рабочих вопросов с коллегами. В «1С:Документообороте» есть «легкая» и встроенная почта. Расскажем, в чем основные отличия между ними.

29.05.2023    273    1C-Conteq    0    

0

Маршруты согласования в 1С: УХ

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Управление холдингом Россия Бесплатно (free)

В типовых конфигурациях 1С:ERP УХ и 1С: УХ (возможно, и в других имеет место быть, но я в других не работал) есть подсистема "Процессы и согласование" . Один из интересных и полезных механизмов данной подсистемы, это возможность прикрутить процесс согласования к различным документам и справочникам, то есть в типовом решение в упрощенном виде реализованы функции Документооборота, что очень удобно, когда не нужна полноценная система для данных целей, а достаточно сделать процессы согласования на несколько документов. В данной статье на примере версии договора покажу, как сделать простой маршрут согласования. Весь процесс создания маршрута показан на примере конфигурации 1С:Управление холдингом, редакция 3.2 (3.2.2.21).

26.04.2023    804    DaKar7    0    

9

Как разрешить создание документов всем обладателям роли без указания адресации, или краткий обзор ограничения прав на создание документов в 1С:Документооборот 3.0

Документооборот и делопроизводство (СЭД) Роли и права Платформа 1С v8.3 1С:Документооборот Россия Бесплатно (free)

1С:Документооборот 3.0, рассмотрим варианты ограничения прав на создание документов в ситуации, когда у вашего холдинга много подразделений/филиалов/организаций. Рассмотрим варианты ограничения по ролям исполнителей с объектами адресации как одной строчкой для всех подчиненных ролей (полные роли), так и для каждой конкретной, а также по рабочим группам.

04.10.2022    2029    ProstoProgrammist    1    

3

Юридическая фирма

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 Аудит и бухгалтерские услуги, юриспруденция Управленческий учет Бесплатно (free)

Бесплатная конфигурация для небольших юр.фирм, юристов и адвокатов

23.08.2022    2041    44    Vil1983    7    

3

Изменение размера штампа электронной подписи (ЭП) в файле Docx

Документооборот и делопроизводство (СЭД) Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Бесплатно (free)

В конфигурации 1С:Документооборот реализована возможность вставки изображения электронной подписи (ЭП) в файлы формата Docx, Doc, Odt. В данной статье мы расскажем, как изменить размер вставки изображения ЭП в файлы формата Docx.

25.07.2022    2246    iclect    6    

13

Добавление собственного виджета в 1С:Документооборот версии 3.0

Документооборот и делопроизводство (СЭД) Адаптация типовых решений Механизмы типовых конфигураций Платформа 1С v8.3 1С:Документооборот Россия Бесплатно (free)

В данной публикации я хочу описать процесс добавления собственного виджета для отслеживания задач по видам документов в 1С документооборот версии 3.0.

18.07.2022    3004    ArseniyFenix    2    

45

1С:Документооборот как прикладное решение оптимизации кадровых бизнес-процессов в организации

Документооборот и делопроизводство (СЭД) Внедрение ИТ-системы Платформа 1С v8.3 1С:Документооборот Россия Управленческий учет Бесплатно (free)

Использование 1С:Документооборот для оптимизации кадровых процессов в организации. Перенос работы с кадровыми документами (прием, увольнение, табеля и др.) в 1С:Документооборот. Опыт внедрения (с позиции консультанта-сопровожденца), описание процессов по каждому документу, взаимодействие с программистами и т.д.

06.07.2022    3000    qwerfff    4    

22

1С:Документооборот КОРП: отличия версий 2.4. и 3.0

Документооборот и делопроизводство (СЭД) Внедрение ИТ-системы Платформа 1С v8.3 Бизнес-процессы 1С:Документооборот 1С:ERP Управление предприятием 2 Россия Управленческий учет Бесплатно (free)

В начале 2022г. фирма 1С выпустила новую версию 3.0 1С:Документооборот КОРП (далее 1С:ДО). И в данном материале мы представим некоторые существенные отличия версии 3.0 от ее предшественника.

07.06.2022    3553    Aprsoft    10    

1

Отбор в журнале документов в 1С:Управление торговлей 11

Инструкции пользователю Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

Журнал документов в 1С 8.3 Управление торговлей 11 представляет собой объект конфигурации, используемый для обеспечения дополнительной функциональности системы при работе с данными. Журнал документов содержит документы различных видов в одном списке. В статье рассмотрим на примере 1С 8.3 Управление торговлей 11, как происходит работа с журналом документов и отбор в этом журнале.

23.05.2022    1976    Koder_Line    0    

1

Оригиналы документов организации в 1С: Документооборот 2.1

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Управленческий учет Бесплатно (free)

С выходом релиза 2.1.22 в системе 1С:Документооборот появилась возможность контролировать наличие оригинала документа организации в карточке документа. Для удобства в системе предусмотрены отчеты «Контроль наличия оригиналов» и «Статистика получения оригиналов». В статье расскажем о том, как в системе 1С:Документооборот происходит контроль и получение оригиналов документов.

23.05.2022    2203    Koder_Line    0    

0

Расширение согласования документов (справочников) в УХ на другие объекты

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление холдингом Бесплатно (free)

Возникает частенько потребность расширить согласование УХ на другие объекты (актуально для УХ и ERP.УХ). В данной статье будет дана подробная инструкция, как это сделать быстро.

26.01.2022    1760    Shining_ninja    0    

9

МЕРАСОФТ Чек-лист - приложение для проверок по чек-листам на платформе 1С:Предприятие

Документооборот и делопроизводство (СЭД) Мобильная платформа Россия Бесплатно (free)

Мы автоматизируем проверки по чек-листам, сокращаем время на формирование отчетов с 2-3 дней в месяц до 1 часа и помогаем компаниям уйти от бумажной работы по составлению отчетов.

16.12.2021    1973    Malina_Spb    2    

2

Как вносить изменения в новое ЭДО от 1С в БП 3? Июнь 2021, БП 3.0.93.20

Документооборот и делопроизводство (СЭД) ЭДО и ОФД Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Бесплатно (free)

Обновились на 3.0.93.20, и все мои расширения под ЭДО перестали работать. Разберем, где вообще искать код, который выводит данные электронного документа в XML, где вмешиваться в ход этого вывода?

03.06.2021    11812    fixin    34    

21

Исправление вывода списка процессов в 1С:Документооборот с группировкой

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Россия Бесплатно (free)

Начиная с версии 2.1.13.28 разработчики 1С:Документооборот изменили порядок отправки документа в обработку. Запуск процесса начинается с одной кнопки Отправить. Это здорово, так как не надо гадать, какой тип процесса настроен для документа, но список процессов неинтуитивный. Особенно, когда количество настроенных процессов более 1000. Все процессы выводятся в один список и сортируются по наименованию.

24.05.2021    3495    Xleo777    5    

23

Иной подход к схемам комплексных процессов (возможность пользователям в удобном формате видеть участников процесса до его запуска) в 1С: Документооборот

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Управленческий учет Бесплатно (free)

Предлагаю решение, как несложным образом переработать шаблоны комплексных процессов, чтобы пользователи могли видеть исполнителей процесса еще до запуска, а ответственные за ввод шаблонов упростили себе задачу при работе со сложными маршрутами.

30.03.2021    7293    Capitullo    2    

6

Выгрузка реестра пособий за счет ФСС в формате 1.7.6

Документооборот и делопроизводство (СЭД) Зарплата Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет ФОМС, ЕФС Бесплатно (free)

Выгрузка из 1С:ЗУП реестра пособий за счет ФСС в формате 1.7.6, т.к. новый формат выгрузки в Тензор (СБИС) не загружается. А если загружается, то не отправляется. А если отправляется, то с ошибками.

24.03.2021    7368    73    pol_k    4    

2

Перенос присоединенных файлов в документооборот при бесшовной интеграции

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот 1С:ERP Управление предприятием 2 Бесплатно (free)

Сейчас присоединенные файлы, добавленные к документу, перенести в связанный документ документооборота можно только вручную. В статье приведен программный код для решения этой задачи в ERP.

26.02.2021    4593    ВикторП    26    

23

Новое в 1С:Документооборот 3.0

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Управленческий учет Бесплатно (free)

Под новый год фирма 1С сделала нам всем подарок – вышла ознакомительная версия долгожданного 1С:Документооборот 3.0! По традиции новая версия кардинально отличается от предшественника как в плане интерфейса, так и по “начинке”. В данной статье рассмотрим самые интересные нововведения. Приступим к обзору.

11.02.2021    12886    Koder_Line    5    

8

Блокировка повторного запуска комплексного процесса по документу в 1С: Документооборот

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Бухгалтерский учет Бесплатно (free)

Доработка в 1С: Документооборот позволяет заблокировать повторный запуск комплексного процесса по шаблону для данного документа, если процесс по этому шаблону уже запущен.

02.11.2020    2828    vlad356987    16    

5

Ограничение выбора вариантов шаблонов запуска процессов в Документообороте 2.1

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

Столкнулся с проблемой, что Документооборот позволяет пользователю выбрать к запуску шаблоны процессов, которые напрямую не указаны в том виде документа, для которого производится запуск процесса.

20.07.2020    4710    Maito    8    

32

Визуализация электронной подписи в заполняемом файле MS Word в 1С:Документооборот

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

Произвольное размещение визуализации электронной подписи в заполняемом документе MS Word в конфигурации 1С:Документооборот.

09.04.2020    11498    Xleo777    7    

11

Делегирование в 1С:Документооборот

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

Важной составляющей при настройке прав доступа пользователей в электронный документооборот «1С:Предприятия» является механизм делегирования прав. Он применяется в случае временного отсутствия одного сотрудника (отпуск, больничный и пр.) и необходимости перенаправлять обязанности и ответственность за своевременное выполнение задач на другого сотрудника. При процессе делегирования возможна передача нескольких или всех прав.

25.02.2020    13346    Koder_Line    4    

5

Электронные трудовые книжки, СЗВ-ТД в ЗУП 3.1 - сборник ответов на вопросы и полезные ссылки

Документооборот и делопроизводство (СЭД) Зарплата Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Бесплатно (free)

С 1 января 2020 г. начался переход на электронные трудовые книжки. До середины февраля 2020 г. все работодатели должны сдать первый отчет по форме СЗВ-ТД. Не смотря на то, что срок сдачи уже достаточно близок, информация по данному направлению постоянно изменяется и уточняется. Я постаралась собрать ключевые моменты, касающиеся перехода на электронный формат ведения трудовых книжек сотрудников в программе ЗУП 3.1, которые возникли при изучении этого нововведения. Данный сборник будет полезен как бухгалтеру/кадровику, так и 1С программисту или консультанту, сопровождающему переход. Весь предложенный материал можно найти самостоятельно, моей целью было собрать разные источники воедино дабы облегчить работу моим коллегам. В связи с тем, что информация может корректироваться и уточняться, необходимо проверять ее актуальность, поэтому в каждом найденном ответе указан источник для проверки. Внимание - данный сборник является справочным, работодатель должен руководствоваться исключительно Законодательством об электронных трудовых книжках. В сборник первоначально вошли только те вопросы, с которыми я столкнулась в своей работе лично, поэтому критика и предложения по дополнению приветствуются! !!!UPD - произошло значительное изменение функционала СЗВ - ТД https://its.1c.ru/db/updinfo#content:701:1:issogl2_2

28.01.2020    63334    Bene_Valete    220    

102

Использование справочника "Условия маршрутизации" для бизнес-событий в 1С Документооборот.

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

Часто возникает ситуация, когда нужно написать обработчик бизнес-события, в алгоритмах которого необходимо, например, использовать данные внутреннего документа (значения доп. реквизитов, обычных реквизитов и т.д.). В данной публикации я хочу поделиться своим решением данной задачи через условия маршрутизации.

28.10.2019    15796    pavelpribytkin96    6    

45

Автоматический запуск бизнес-процессов по входящим письмам с электронной почты в 1С Документооборот.

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

Коллеги, в данной публикации я хочу описать пример настройки автоматического запуска бизнес-процессов по входящим письмам в документообороте с использованием встроенного почтового клиента.

28.10.2019    17795    pavelpribytkin96    15    

26

Работа с автозаполнением шаблонов файлов в документообороте

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

При автозаполнении шаблонов файлов средствами MS Word возникает такая проблема - если одно и то же поле используется несколько раз в документе, тогда приходится дублировать закладки, например, если поле "Ответственный" используется 2 раза приходится создавать 2 закладки (Ответственный", "Ответственный2") и дублировать правила заполнения для этих полей. В данной статье я хочу рассказать каким образом можно создавать только 1 закладку и использовать данные из этой закладки в других местах документа.

22.09.2019    7245    pavelpribytkin96    2    

15

Как внедрить 1С:Документооборот в условиях хаоса

Документооборот и делопроизводство (СЭД) Внедрение ИТ-системы Платформа 1С v8.3 1С:Документооборот Управленческий учет Бесплатно (free)

Не всегда проекты можно внедрить по заранее спланированному алгоритму. Скорее, даже никогда проекты не удается выполнить по универсальному плану: в каждой конкретной ситуации есть свои сложности и свои проблемы. Опытом внедрения 1C:Документооборот в отсутствии описанных процессов и утвержденной структуры предприятия на конференции поделилась руководитель отдела автоматизации торговой сети РЕМИ Марина Лимонтова (г. Владивосток).

21.08.2019    26578    limm28    16    

75

Как настроить правильную техподдержку (helpdesk, service desk на коленке)

Управление взаимоотношениями с клиентами (CRM) Документооборот и делопроизводство (СЭД) Монитор заказов Учет рабочего времени Управление проектом (PMO, EPM) Платформа 1С v8.3 Управленческий учет Бесплатно (free)

Эта статья будет полезна для компаний, которые оказывают техническую поддержку своим пользователям - внешним или внутренним клиентам. В статье я расскажу, как оказываем поддержку мы, как выстроили этот бизнес-процесс, что контролируем и на что обращаем внимание в работе. Вы можете использовать наш опыт при построении собственной системы поддержки или обратиться к нам за помощью за построением такой системы, будем рады помочь. В статье формируется основной набор правил, которые мы сформировали при настройке системы для себя, а так же небольшие примеры того, как мы эти правила применяем.

24.04.2019    38395    siddy    0    

60

Расширение для загрузки в 1С сканов документов, pdf файлов, распознанных с помощью OCR

Обработка документов Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Подсистема, предназначенная для автоматического разбора распознанного файла, извлечение из него полезной информации и загрузки данных в 1С.

27.03.2019    14082    192    trim89    12    

24