Шишкина Ирина | Консультант, PM | Студия креативного консалтинга Не просто ИДЕЯ

«Эмоциональный интеллект в управлении ИТ-командами»

- Эмоциональный интеллект - почему это сейчас так важно? Обзор сложностей управления ИТ-командами - Грядущий кризис по Гоулману: "коэффициент умственного развития все выше, а коэффициент эмоционального развития все хуже" - Умение владеть собой для ИТ-Директора. Риски для команды, связанные с низким эмоциональным интеллектом руководителя. Инструмент для оценки своих эмоций. - Эмпатия ИТ-Директора: влияние на стейкхолдеров проекта - "Ненастроенный программист" или как определить уровень эмоционального интеллекта команды. Простые инструменты - как понять, что движет командой?

Как заполнять реквизит документа перед записью, но не заполнять в процессе перепроведения документов

1. Anjut-ka4 13.02.18 16:53 Сейчас в теме
Здравствуйте, подскажите, пожалуйста, требуется при изменении документов заполнять реквизит. Для этого я создала подписку на событие. Сейчас заметила, что. когда запускаешь проведение документов, подписка отрабатывает - реквизит заполняется, а мне надо заполнять этот реквизит только при интерактивном изменении документа пользователем. Как это сделать?
Ответы
Сортировка: Древо
3. Ziggurat 53 13.02.18 17:50 Сейчас в теме
(1) Очевидно надо делать обработчик в форме.
7. spacecraft 13.02.18 21:11 Сейчас в теме
(1) модуль формы документа:
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	ТекущийОбъект.ДополнительныеСвойства.Вставить("ЗаписьИзФормы", Истина);
КонецПроцедуры


модуль объекта документа:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	ЗаписьИзФормы = Неопределено;
	ЭтотОбъект.ДополнительныеСвойства.Свойство("ЗаписьИзФормы", ЗаписьИзФормы);
	Если ЗаписьИзФормы = Неопределено Тогда
		// запись не из формы
	Иначе
		// запись из формы
	КонецЕсли;
КонецПроцедуры
Показать
12. dandykry 4 14.02.18 09:08 Сейчас в теме
(1)
Как же все-таки отделить обработку проведения документов от интерактивного изменения документа?


Если РежимЗаписи = РежимЗаписиДокумента.проведение и ЭтаФорма.Модифицированность и Объект.Ссылка.Проведен Тогда

Что-то вроде этого, но немного оптимизировать. Проверяет проведение это или нет, модифицировали форму или просто тыкают провести закрыть и смотрит был проведен или нет. Можно еще условие на Объект.Ссылка.пустая(). Под рукой конфигуратора нет, так бы написал.

Это только в модуле формы. проведение может быть не интеррактивным, а так же из формы списка, поэтому модуль объекта я бы не трогал, а ограничился только формой документа.
2. VZyryanov 13.02.18 17:40 Сейчас в теме
Можно определить, что это новый объект "Если Источник.Ссылка.Пустая() ". Если запускать проведение документа могут не все пользователи, то можно принять решение по текущему пользователю или по доступной роли.
4. t.v.s. 79 13.02.18 20:06 Сейчас в теме
(2) метод УстановитьСсылкуНового() с вами категориччески не согласен
8. VZyryanov 14.02.18 06:46 Сейчас в теме
(4) А зачем ее устанавливать?
9. t.v.s. 79 14.02.18 07:22 Сейчас в теме
(8) Ситуации бывают разные
5. Anjut-ka4 13.02.18 20:38 Сейчас в теме
смысл реквизита в том, чтобы запоминать последнего, кто редактировал документ, поэтому документ может быть, как новым, так и не новым. А проводить документы (для восстановления последовательности, например) может любой, но при этом не надо заполнять нужный мне реквизит в документах.
Обработчик формы тоже не поможет, потому что, когда отрабатывает проведение документов, процедуры "перед записью" отрабатывают так же, как и когда пользователь нажимает "Записать".
Как же все-таки отделить обработку проведения документов от интерактивного изменения документа?
6. Xershi 374 13.02.18 20:44 Сейчас в теме
(5) вы не правы! Когда вы запускаете обработку, то форма не открывается! А когда запустили форму, то это уже явно не восстановление!
10. user700035_6550355 14 14.02.18 07:41 Сейчас в теме
Перед записью на форме прописать код по изменению реквизита, а обработка она использует модуль объекта
11. VZyryanov 14.02.18 08:22 Сейчас в теме
Процедура УстановитьДатыСозданияИзмененияОбъекта(ЭтотОбъект) Экспорт	
	ТекущийПользователь=ТекущийПользователь();
	Если ЭтотОбъект.Ссылка.Пустая() Тогда
		Если ЕстьРеквизит(ЭтотОбъект,"Создал") И ЕстьРеквизит(ЭтотОбъект,"ДатаСоздания") Тогда
			ЭтотОбъект.Создал=ТекущийПользователь;
			ЭтотОбъект.ДатаСоздания=ТекущаяДата();
		КонецЕсли;
		Если ЕстьРеквизит(ЭтотОбъект,"Изменил") И ЕстьРеквизит(ЭтотОбъект,"ДатаИзменения") Тогда
			ЭтотОбъект.Изменил=ЭтотОбъект.Создал;
			ЭтотОбъект.ДатаИзменения=ЭтотОбъект.ДатаСоздания;
		КонецЕсли;
	ИначеЕсли ЭтотОбъект.Модифицированность() Тогда
		Если ЕстьРеквизит(ЭтотОбъект,"Изменил") И ЕстьРеквизит(ЭтотОбъект,"ДатаИзменения") Тогда
			Если (Не КФСервер.ЭтоПрограммист(ТекущийПользователь) ИЛИ ЭтотОбъект.ДатаИзменения='00010101') Тогда
				ЭтотОбъект.Изменил=ТекущийПользователь;
				ЭтотОбъект.ДатаИзменения=ТекущаяДата();
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры	

//Обработчик подписки
Процедура КФПередЗаписьюОбъекта(Источник, Отказ) Экспорт
	Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	УстановитьДатыСозданияИзмененияОбъекта(Источник);
КонецПроцедуры
Показать


Возможно, когда обработкой выполняется перепроведение не устанавливается Модифицированность.
Оставьте свое сообщение
Все разделы

Вакансии


Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

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

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

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