Сергей Горшенин | Бизнес-тренер |

«Стратегия выживания в корпоративных войнах»

#скандалы #интриги #расследования Не секрет что представители ИТ–подразделений зачастую самые лояльные сотрудники компании. При этом их участие в организации как системе, как правило, отличается от представителей бизнес-подразделений. Зачастую "айтишники" руководствуются в основном логикой и мыслят достаточно рационально. Как следствие они все вопросы стараются решить "в лоб", в отличии от представителей бизнес-сферы, для которых вполне естественно использовать обходные варианты решений. В том числе и "общение в кулуарах" или попросту говоря интриги. А ведь таким образом многие вопросы решаются гораздо быстрее. И не умея использовать этот инструмент айтишники будут терять позиции в иерархической лестнице компании. Мы поговорим о - причинах отсутствия у айтишников умения использовать подобный инструмент - увидим результаты многолетнего опроса ИТ-директоров Санкт-Петербурга, Москвы, Екатеринбурга и Тюмени, подтверждающие вышеуказанный факт - Ознакомимся с некоторыми приемами и стратегиями поведения, которые будут активно помогать в вашей деятельности - узнаем что такое СПА-процедуры, и как они могут изменить место представителей ИТ в корпоративном "табеле о рангах" - что такое психодраматический треугольник Карпмана, и почему айтишники "бегают" по нему годами Это и многое другое в докладе "Стратегия выживания в корпоративных войнах".

Определить минимальное значение в последовательности больше заданного

1. pentanom 16 24.12.16 11:19 Сейчас в теме
Есть регистр сведений, у которого два измерения "Объект" и "Дата".
Нужно найти для заданного объекта запись регистра с ближайшей следующий за заданной датой.
Условие: запрос не использовать.
Ответы
Сортировка: Древо
2. vadim1011985 45 24.12.16 12:39 Сейчас в теме
Регистр не периодический ?
3. pentanom 16 24.12.16 12:52 Сейчас в теме
(2) Нет.
Это из следующей задачи: Объекты обслуживаются по заданному календарю. Нужно определить следующую дату обслуживания объектов.
4. vadim1011985 45 24.12.16 13:01 Сейчас в теме
Набор = регистрыСвединий. ВашРегистр.создатьНаборЗаписей()

МинДата=неопределено;

Набор.отбор.объект.установить(искомыйОбъект)

Набор.прочитать() ; 

Для каждого запись из набор цикл 
Если запись.дата < =заданнаядата тогда 
Продолжить
КонецЕсли; 

Если МинДата = неопределенно тогда 
МинДата = запись.Дата; 
НужнаяЗапись = запись;
ИначеЕсли МинДата> запись.Дата тогда 
НужнаяЗапись = запись; 
МинДата = запись.Дата; 
КонецЕсли;
КонецЦикла; 
Показать

Как-то так
5. pentanom 16 24.12.16 13:45 Сейчас в теме
(4) К сожалению, это длиннее, чем запросом.
Мне бы нужно было написать в условии, чтобы было короче.
Просто хочется красиво написать функцию определения этой даты, но так, чтобы ее можно было использовать и для получения последней дату обслуживания.

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

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


так вот все это хочется написать короче и в "прошлое".
Оставьте свое сообщение
Все разделы

Вакансии

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

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

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

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

Удаленный бизнес-аналитик 1С
Санкт-Петербург
Временный (на проект)