0. sapervodichka 1543 22.07.19 17:49 Сейчас в теме

Структура подчиненности с хронологией документов и кнопками проведения и удаления

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

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. insurgut 197 23.07.19 12:09 Сейчас в теме
Если эта штука ещё из журнала регистрации выводила бы когда документы изменялись/перепроводились - было бы вообще круто :)
sapervodichka; +1 Ответить
2. KazanKokos 8 23.07.19 12:43 Сейчас в теме
(1) анрил. ЖР тормоз и быстрая выборка в ней невозможна. Необходимо отдельный регистр заводить по операциям над документами, ну или где-то видел готовые механизмы типа нетипового ЖР на регистрах. Контроль версий опять таки можно включить то он вроде быстрый и его еще можно использовать.
sapervodichka; +1 Ответить
3. shard 251 24.07.19 15:36 Сейчас в теме
(1) ковырнул в этом направлении с применением данных регистра версий объектов (естественно, версионирование должно быть включено). Вот что получилось:

история версий ведется по заказам и реализациям, по счф не ведется. Заказ 19854 проводился в 10, 15-17 числах, реализация 10877 проводилась 15го числа, была распроведена 17го. счф 11123 от 15го числа висит непроведенной. Проверял на УТ 11.4.8.84.
По изменениям документов считаю нецелесообразным собирать инфу в структуре подчиненности.

Для этого необходимо изменить процедуру Расш1_ДобавитьДокументВТаблицу на
&НаСервере
Процедура Расш1_ДобавитьДокументВТаблицу(_Документ, _ТаблицаДокументов)
	
	запрос=новый запрос("ВЫБРАТЬ
		|	НАЧАЛОПЕРИОДА(ВерсииОбъектов.ДатаВерсии, ДЕНЬ) КАК ДеньВерсии,
		|	ВерсииОбъектов.ДатаВерсии КАК ДатаВерсии,
		|	ВерсииОбъектов.НомерВерсии КАК НомерВерсии
		|ПОМЕСТИТЬ ВТ
		|ИЗ
		|	РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
		|ГДЕ
		|	ВерсииОбъектов.Объект = &Объект
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ВТ.ДеньВерсии КАК ДеньВерсии,
		|	МАКСИМУМ(ВТ.ДатаВерсии) КАК ДатаВерсии
		|ПОМЕСТИТЬ ВТ1
		|ИЗ
		|	ВТ КАК ВТ
		|
		|СГРУППИРОВАТЬ ПО
		|	ВТ.ДеньВерсии
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ВТ1.ДеньВерсии КАК ДеньВерсии,
		|	ВТ1.ДатаВерсии КАК ДатаВерсии,
		|	МАКСИМУМ(ВТ1.НомерВерсии) КАК НомерВерсии
		|ИЗ
		|	ВТ1 КАК ВТ
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК ВТ1
		|		ПО ВТ.ДатаВерсии = ВТ1.ДатаВерсии
		|
		|СГРУППИРОВАТЬ ПО
		|	ВТ1.ДеньВерсии,
		|	ВТ1.ДатаВерсии
		|");
	запрос.УстановитьПараметр("Объект",_Документ);
	выборкаСостояний=запрос.Выполнить().выбрать();
	пока выборкаСостояний.Следующий() цикл
		тзРеквизитов=ВерсионированиеОбъектов.РазборВерсии(_Документ, выборкаСостояний.НомерВерсии).Реквизиты;
		НовСтр_ТаблицаДокументов = _ТаблицаДокументов.Добавить();
		НовСтр_ТаблицаДокументов.Документ = _Документ;
		НовСтр_ТаблицаДокументов.Дата = выборкаСостояний.ДеньВерсии;
		
		строчка=тзРеквизитов.найти("DeletionMark","НаименованиеРеквизита");
		если строчка<>Неопределено тогда
			НовСтр_ТаблицаДокументов.ПометкаУдаления=строчка.ЗначениеРеквизита;
		КонецЕсли;		
		строчка=тзРеквизитов.найти("Posted","НаименованиеРеквизита");
		если строчка<>Неопределено тогда
			НовСтр_ТаблицаДокументов.Проведен=строчка.ЗначениеРеквизита;
		КонецЕсли;		
	КонецЦикла;
	
	Попытка 
		_Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(_Документ, "Дата, Проведен, ПометкаУдаления");
	Исключение
		Возврат;
	КонецПопытки;
	
	Если _ТаблицаДокументов.Найти(_Документ, "Документ") = Неопределено Тогда
		НовСтр_ТаблицаДокументов = _ТаблицаДокументов.Добавить();
		ЗаполнитьЗначенияСвойств(НовСтр_ТаблицаДокументов, _Реквизиты);
		НовСтр_ТаблицаДокументов.Документ = _Документ;
	КонецЕсли;
	
КонецПроцедуры
Показать
molodoi1sneg; +1 Ответить
4. blindcat2006 67 28.07.19 18:09 Сейчас в теме
Шикарная штука, "+" поставил.
Из маленьких "придеризмов" - а можно в диаграме выделить как-то документ по которому построилось дерево? (жирным шрифтом например , как и в самом отчете)
5. gull22 87 30.07.19 14:29 Сейчас в теме
Программа ЕРП. В настройках расширения поставил единицу времени ЧАС. Рассчитывал увидеть начало диаграммы для документа в момент его создания (поле = Дата). Увы, прорисовывается на весь день. Можно учитывать на диаграмме время создания документа при выборе единицы времени меньше дня. Логично, что конец диаграммы для документа - это конец дня создания.
6. sapervodichka 1543 30.07.19 14:54 Сейчас в теме
(5) с практической точки зрения зачем это нужно?
7. gull22 87 31.07.19 09:34 Сейчас в теме
Пока простое любопытство.
Но возникает встречный вопрос: зачем в настройках нужны единицы времени менее дня, если в диаграмме все равно прорисовывается день целиком?
8. sapervodichka 1543 31.07.19 09:46 Сейчас в теме
(7) это штатная опция диаграммы ганта, её здесь можно не использовать, т.к. у меня минимальный интервал день заложен в коде. Сделано из-за масштаба, когда документы разбегаются на длительные промежутки, чтобы были видны интервалы в диаграмме
9. gull22 87 31.07.19 09:55 Сейчас в теме
(8)
Тогда чисто теоретический вопрос: а можно выводить в диаграмме начало документа, учитывая час создания?
10. sapervodichka 1543 31.07.19 09:56 Сейчас в теме
(9) да, вместо интервала в коде нач и кон дня, можно сделать нач и кон часа от даты документа.
11. 7OH 32 31.07.19 11:18 Сейчас в теме
А зачем вызов методов через Выполнить сделали ?
12. sapervodichka 1543 31.07.19 11:30 Сейчас в теме
(11) часть вызовов сделана с вилками вариантов через Выполнить("...") для адаптации к конфигурациям, в том числе к Бухгалтерии предприятия, где форма структуры подчиненности с другими реквизитами.
Прикрепленные файлы:
13. 7OH 32 31.07.19 11:31 Сейчас в теме
(12) а попытка исключения с обычным кодом не сработает разве также ?
14. ivan_luzinov 37 05.08.19 15:02 Сейчас в теме
Офигенская штука! Спасибо!
15. tsatsur 7 12.08.19 08:41 Сейчас в теме
Отличное расширение. Забрал и немного переделал (сделал программное добавление на форму команд и кнопок, чтобы смело переживало обновления формы:). Спасибо.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

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

Руководитель проектов 1С
Санкт-Петербург
Полный день


Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день