Динамическая кнопка VS Комбинация клавиш

Публикация № 1707418 08.08.22

Приемы и методы разработки - Работа с интерфейсом

Часто требуется ко всем формам или к списку форм привязать новые действия. Но как это сделать не меняя каждую форму и в идеале не меняя конфигурацию? Ниже будет описано, как запрограммировать новые действия через расширение (т.е. не меняя конфигурации) и сделать это универсально (не меняя каждую форму).

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

Будут рассказывать на примере расширения Поддержка пользователей [Alt+S] (подключаемое расширение)

 

Создаем "Своё" расширение

По сути, расширение конфигурации – это надстройка над конфигурацией, т.е. дополнение, которое использует объекты основной конфигурации, но самостоятельно работать не может. Зато позволяет доработать типовое решение, не снимая его с поддержки. Как создавать расширение 1С - отдельная тема, и информацию по ней можно поискать в интернете.

 

Комбинация клавиш

 

 

  • В коде модуля команды работаем с методом АктивноеОкно(), где в зависимости от формы получаем координаты объекта: Ссылка или НавигационнаяСсылка. Далее уже работаем с этим полученным материалом (в данном примере Поддержка пользователей [Alt+S] (подключаемое расширение) (infostart.ru) открывается форма журнала обращений, привязанная к объекту, из которого произошел вызов, а например в публикации Доп. панель Alt+Z (infostart.ru) открывает панель с обработками объекта).

 

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	
	пАктивноеОкно = АктивноеОкно();
	Если пАктивноеОкно = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	флЕстьОшибки = Ложь; 
	
	Форма = Неопределено;
	Источник = Неопределено;
	НавигационнаяСсылка = Неопределено;
	
	Попытка
		Форма = пАктивноеОкно.Содержимое[0];  
	Исключение
		флЕстьОшибки = Истина;
	КонецПопытки;   
	
	Попытка
		пИмяФормы = пАктивноеОкно.Содержимое[0].ИмяФормы; 
		Если Найти(пИмяФормы, "Форма.ФормаДокумента") > 0 Тогда
			Источник = Форма.Объект.Ссылка;
		ИначеЕсли Найти(пИмяФормы, "Форма.ФормаЭлемента") > 0 Тогда
			Если Найти(пИмяФормы, "Справочник.ФизическиеЛица") > 0 Тогда 
				Источник = Форма.ФизическоеЛицо.Ссылка;
			ИначеЕсли Найти(пИмяФормы, "Справочник.Сотрудники") > 0 Тогда
				Источник = Форма.Сотрудник.Ссылка;
			Иначе
				Источник = Форма.Объект.Ссылка;	
			КонецЕсли;
		ИначеЕсли Найти(пИмяФормы, "Форма.ФормаОтчета") > 0 Тогда
			НавигационнаяСсылка = Форма.НавигационнаяСсылка;      
		Иначе
			Попытка
				Если ТипЗнч(Форма.ТекущийЭлемент) = Тип("ТаблицаФормы") Тогда
					Источник = Форма.ТекущийЭлемент;
				КонецЕсли;		
			Исключение
			КонецПопытки;	
		КонецЕсли;	
	Исключение
	КонецПопытки;
	
	Если флЕстьОшибки Тогда
		ПоказатьПредупреждение(Неопределено, "Не удается открыть Поддержку пользователей (Alt+S) для текущего объекта", 5, "ВНИМАНИЕ");
	Иначе
		suplite_Клиент.ОткрытьЖурналОбращений(Форма, Источник, НавигационнаяСсылка);     
	КонецЕсли;
	
КонецПроцедуры

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

 

Динамическая кнопка

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

 

 

Код вывода кнопки в командную панель формы suplite_Сервер.ПриСозданииНаСервере(Форма)

Процедура ПриСозданииНаСервере(Форма) Экспорт
	
	Попытка
		Если ТипЗнч(Форма) = Тип("УправляемаяФорма") Тогда
			
			Если РольДоступна("ПолныеПрава") 
				ИЛИ РольДоступна("suplite_Чтение")
				ИЛИ РольДоступна("suplite_ДобавлениеИзменение")
				ИЛИ РольДоступна("suplite_Администрирование") Тогда
				
				Если Форма.Элементы.Найти("suplite_Открыть") = Неопределено Тогда
					
					ЭлементРодитель = Форма.Элементы.ФормаКоманднаяПанель;
					
					Если СтрЧислоВхождений(Форма.ИмяФормы, "ФормаСписка") <> 0 И //Для Списков
						Форма.Элементы.Найти("ГруппаГлобальныеКоманды") <> Неопределено Тогда							
						ЭлементРодитель = Форма.Элементы.ГруппаГлобальныеКоманды;
					ИначеЕсли СтрЧислоВхождений(Форма.ИмяФормы, "ФормаОтчета") <> 0 И //Для отчетов
						Форма.Элементы.Найти("ОсновнаяКоманднаяПанель") <> Неопределено Тогда							
						ЭлементРодитель = Форма.Элементы.ОсновнаяКоманднаяПанель;
					КонецЕсли;
					
					// Создадим команду
					Команда	= Форма.Команды.Добавить("suplite_Открыть");
					Команда.Действие	= "Подключаемый_ВыполнитьКоманду";
					
					// Создадим кнопку и привяжем к ней команду
					Кнопка = Форма.Элементы.Добавить("suplite_Открыть", Тип("КнопкаФормы"), ЭлементРодитель);
					Кнопка.Заголовок	= "Поддержка пользователей [Alt+S]";
					Кнопка.ИмяКоманды	= "suplite_Открыть";
					Кнопка.Картинка = БиблиотекаКартинок.suplite_Картинка;
					
				КонецЕсли;    
			КонецЕсли;  
		КонецЕсли; 
		
	Исключение
	КонецПопытки; 	
	
КонецПроцедуры
  • Чтобы кнопка работала, в модуле формы должна быть процедура Подключаемый_ВыполнитьКоманду(), её вставляют почти во все типовые формы объектов и списков. Её также нужно перехватить в расширение из ОбщийМодуль.ПодключаемыеКомандыКлиент и по имени динамической кнопки (тут "suplite_Открыть") назначить своё действие.

 

 

Что в результате имеем

И нажатием комбинации клавиш Alt+S на клавиатуре, и нажатием на кнопку командной панели формы выполняется одно и то же действие. Здесь Поддержка пользователей [Alt+S] (подключаемое расширение) (infostart.ru) создается обращение в поддержку, а здесь Доп. панель Alt+Z (infostart.ru) открывается панелька с дополнительными командами.

 

 

Плюсы и минусы

Свойство Динамическая кнопка Комбинация клавиш
Возможность вызова Вызов доступен в формах документов и справочников, где прописаны глобальные обработчики при создании формы и подключаемые процедуры, которые можно переопределить. Вызов доступен во всех формах без исключения (документы, справочники, регистры, отчеты, обработки, формы списков и т.д.)
Удобство вызова Привычный вид для пользователей - Кнопка в командной панели формы Не видна, необходимо помнить комбинацию
Реализация вызова Требуется перехват событий и переопределение обработчиков Просто, минимум кода, отслеживать уникальность комбинации клавиш 

 

P.S. Мне как-то больше легли на душу комбинации, но бухгалтерия - всё больше голосует за кнопки.

Есть, кстати, такая песенка «Бухгалтер» у группы "Комбинация", рассказывающая злободневную историю о маленьком человеке — простом бухгалтере.

Почему-то вспомнилось. Всем добра.

 
 Другие публикации автора

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ybatiaev 58 08.08.22 22:55 Сейчас в теме
Добрый день! Идея хорошая.
На мой взгляд, правда, направление более правильное - голосовое управление. На инфостарте уже было решение 1С+python. Один минус - потоковый стрим на клиентсерверной части не поддерживался при терминальном доступе.
Вот это бы конкретно развить )))
KRIHA; sapervodichka; NiGMa; +3 Ответить
2. quazare 2704 09.08.22 04:47 Сейчас в теме
продолжаешь развивать тему комбинаций клавиш? идея хорошая!
3. sapervodichka 6178 09.08.22 09:10 Сейчас в теме
(2) угумс, всё новое забытое старое
Прикрепленные файлы:
Lemmonbri; +1 Ответить
4. vld1973 74 09.08.22 09:53 Сейчас в теме
Спасибо за интересную идею. Плюсую.
5. Segate 165 09.08.22 10:06 Сейчас в теме
А зачем это в управлениях свойствами?
Раз уж мы используем БСП - используйте подключаемые команды, как положено
8. sapervodichka 6178 09.08.22 12:19 Сейчас в теме
(5) В разных конфах в модулях форм внутри события ПриСозданииНаСервере полно разных вызовов [ОбщийМодуль].ПриСозданииНаСервере(...) которые можно перехватить, тут УправлениеСвойствами.ПриСозданииНаСервере перехвачем с расчетом на конфу ЗУП был.
ПодключаемыеКоманды.ПриСозданииНаСервере()
ИнтеграцияС1СДокументооборот.ПриСозданииНаСервере()
СобытияФорм.ПриСозданииНаСервере()
ВерсионированиеОбъектов.ПриСозданииНаСервере()
УправлениеСвойствами.ПриСозданииНаСервере()
и т.д.

где-то есть где-то нет того или иного вызова, поэтому можно перехватить несколько модулей, в самом выводе кнопки проверяется ее наличие на форме, если уже выведена, то повторно не выводится
adhocprog; +1 Ответить
16. PLAstic 289 09.08.22 17:49 Сейчас в теме
(8) Омагад... А подключить нужные объекты к подсистеме подключаемых команд никак было? И тогда бы завязался на неё только. Всё равно у тебя есть расширение и внести нужные модификации было несложно. А так наколхозил в типовых подсистемах БСП. Ну как бы да, задачу решил, но какой ценой? У программиста должны быть принципы.
18. sapervodichka 6178 09.08.22 18:15 Сейчас в теме
(16) у меня большое количество баз, а решение должно быть универсальным, автономным, простым, не требующим доработок под любое типовое решение 1С. Сами подключаемые обработки о которых ты пишешь, можно использовать для заполнения по остаткам на складе, например, документа Перемещения. Я и их часто делаю, но тут не про них.
6. PLAstic 289 09.08.22 10:09 Сейчас в теме
А чем это лучше обычных подключаемых команд? В итоге ты и подключаешься к его событиям.
*пока читал, выше написали то же самое
9. sapervodichka 6178 09.08.22 12:22 Сейчас в теме
(6) ПодключаемыеКоманды подразумевают создание внешней обработки заполнения, а тут как бы в расширении не одна обработка а заложены целые подсистемы (наборы обработок, какие-то документы, справочники регистры и т.д.) цеплять их на внешнюю обработку мне было не удобно
adhocprog; +1 1 Ответить
15. PLAstic 289 09.08.22 17:46 Сейчас в теме
(9) Велкам, делай любую архитектуру в расширении, но подключить к формам объектов ты мог это и нормальным образом, предусмотренным подсистемой. И в пользу внешней обработки говорит в т.ч. и модифицируемость кода на бою, что недостижимо даже с расширением (динамить базу всё равно придётся).
17. sapervodichka 6178 09.08.22 18:12 Сейчас в теме
(15) тут как бы публикация про сравнение кнопки и комбинации, а не про конкретное расширение.

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

В чем профит твоего напора на решение не понимаю.
У меня у самого десятки разных баз (а реально сотни), и то решение скачали десятки людей.
Всем зашло - это нормально один раз поставить расширение.
Внешняя обработка в довесок к расширению - не пришей собаке хвост.
suepifanov; +1 Ответить
21. dhurricane 10.08.22 12:49 Сейчас в теме
(17) На всякий случай переформулирую исходный вопрос, как я его понял. Почему Вы не добавили свой вид подключаемых команд? "Целые подсистемы" же здесь не преграда.
23. sapervodichka 6178 10.08.22 13:25 Сейчас в теме
(21) Ден, пожалуйста, напиши в чем профит от этого варианта по сравнению с текущим (это быстрее, это удобнее, это морально правильнее, зачем мне это переделать)?
Сразу поблагодарю (читал твои комменты ранее) ты по крайней мере примеры скидываешь, может твой вариант и лучше будет. Просто обдумывать за кого-то его идею я не стану, нет времени, работа сам понимаешь. Если напишут пример и он будет лучше, то я только за.
24. dhurricane 10.08.22 14:07 Сейчас в теме
(23) Это морально правильнее. :-) Ну на мой вкус. Не могу объяснить, нет объективных аргументов.
25. PLAstic 289 10.08.22 16:58 Сейчас в теме
(24) У меня есть. Это ТСО, включающее в себя лёгкость модификации и обслуживания. Приходит новый человек, который знает БСП. Он знает про подсистему подключаемых команд и мог бы легко выполнить задачу по модификации этой добавленной функциональности, но лезет разбираться в код и видит, что нет такой подключаемой команды, но есть какое-то уникальное решение с 10ю вызовами при открытии формы, из которых отрабатывает только первый, а остальные проверяют наличие результата.
Это выливается в кучу времени на изучение уникальных механизмов вместо известных большинству БСПшных. Это вопросы "а зачем было сделано так?" и т.п.
В результате работодателю это обойдётся дороже, чем если бы было реализовано с использованием типовых методов.
26. PLAstic 289 10.08.22 17:01 Сейчас в теме
(24) И добавлю в финале мой любимый вопрос: что ты положишь в копилку своего опыта?
В данном случае автор пилит какой-то свой механизм и благодаря тому, что ему разрешают это делать, он это делает. Но вот пришла смена конторы и в новой ему говорят "не, коллега, мы тут колхоз не приветствуем, садись и делай по-нормальному". А у него нет опыта в копилке, нет знаний механизмов БСП, нет в принципе привычки грызть вопрос "а как можно было бы правильнее сделать".

зыЖ Допускаю, что опыт/знания есть, но видимо нет принципов, о которых я писал ранее. Отсутствие принципов допускает написание кода любого уровня корректности.
27. sapervodichka 6178 10.08.22 20:57 Сейчас в теме
(26) зачем слова, скидывай свой код сюда
28. sapervodichka 6178 10.08.22 23:49 Сейчас в теме
(27) можно с легкостью переделать на 1 перехват
ПодключаемыеКоманды.ПриСозданииНаСервере()

Вместо 2 перехватов

ВерсионированиеОбъектов.ПриСозданииНаСервере()
УправлениеСвойствами.ПриСозданииНаСервере()

- когда я то расширение делал, вызова ПодключаемыеКоманды.ПриСозданииНаСервере() не было в формах, а в разных формах было то ВерсионированиеОбъектов то УправлениеСвойствами.

Вообщем, Леонид, проблемы тут нет, и надумывать её не нужно.
Там лишь 1 процедура вызывается. А у программистов есть мозг.

Давай расходиться, либо присылай свой код и обработку, я посмотрю.

Если он лучше и удобнее, то я возьму на вооружение и буду тебе благодарен.
В любом случае спасибо за критику.
Прикрепленные файлы:
fatman78; PLAstic; +2 Ответить
29. PLAstic 289 11.08.22 10:07 Сейчас в теме
(27) Да я и не сходился. Если есть такой монстр и он работает, то тут речь можно вести только об оптимизации, чтобы прям красиво было. Это как 5 и 5+ в школе. У меня нет каких-то интеллектуальных доработок на эту тему. Недавно сделал вызов клиентского метода (открытие формы) через подключаемые команды, но и там всё по инструкции, ничего интересного.
Вангую, скоро ты увидишь массу моего кода, но это в личку. :)
7. user654641_yaga_m 5 09.08.22 11:04 Сейчас в теме
10. bulpi 209 09.08.22 14:16 Сейчас в теме
Плюсанул, но есть замечание :
код процедуры ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
написан отвратительно. Зачем там столько Попытка - Исключение ?
Я бы постыдился такое выкладывать.
zhuntovda; +1 Ответить
14. sapervodichka 6178 09.08.22 14:59 Сейчас в теме
(10) Я не могу всё предупредить по разным формам в 1С (они далеко не все стандартные), где-то есть вероятность ошибки. Чтобы в рабочей базе ошибка не помешала пользователю дальше продолжить работать на некоторых моментах поставил попытка исключение. На практике исключения не возникали, но сам оператор оставил (я перестраховщик).
11. Eralashka 09.08.22 14:31 Сейчас в теме
Найти(пИмяФормы, "Справочник.Сотрудники") > 0
какой то убогий код немного

Попробуй покурить Метаданные.Содержит()
PLAstic; zhuntovda; +2 1 Ответить
13. sapervodichka 6178 09.08.22 14:54 Сейчас в теме
(11) я не курю (>_<) напиши какой параметр передать туда?
19. sapervodichka 6178 09.08.22 18:19 Сейчас в теме
(13) всем кто лайкает предложение использовать Метаданные.Содержит() для начала напишите, что туда передать )))
20. dhurricane 10.08.22 12:45 Сейчас в теме
(19) Может речь была впринципе об использовании метаданных?
МетаданныеФормы = Метаданные.НайтиПоПолномуИмени(пИмяФормы);
ЭтоСправочникСотрудников = (МетаданныеФормы.Родитель() = Метеданные.Справочники.Сотрудники);
22. sapervodichka 6178 10.08.22 13:18 Сейчас в теме
(20) пусть использую, что хотят, дальше все равно проверять имя формы и основной объект в форме сотрудника (он там в отличие от стандартного называется Сотрудник, вместо Объект) (тебе в любом случае спасибо)
34. fatman78 8 13.12.22 20:53 Сейчас в теме
(22)Согласен с Дмитрием, тоже нахлебался с этими именами форм (особенно форм списков) - каких только вариантов названий не встретишь, программисты в типовых конфигурациях сами пренебрегают своими же стандартами.
Еще одна боль - отсутствие удобной штатной возможности программно определить "основной реквизит" на форме, встречал в типовых реализацию даже с применением спец. реквизита что-то типа "ИмяОсновногоРеквизита" строкового типа, который и хранил имя "основного реквизита" формы.
30. PLAstic 289 11.08.22 10:12 Сейчас в теме
(20) В БСП есть масса методов для работы с метаданными (ОМ ОбщегоНазначения) и в т.ч. для многих случаев можно использовать не сами метаданные, а ИдентификаторыОбъектовМетаданных - это удобнее и кодом они тоже сильно обвязаны.
31. sapervodichka 6178 11.08.22 10:34 Сейчас в теме
(30) Леонид, если они тут применимы =))) напиши пример, что вместо Найти(пИмяФормы, "Справочник.Сотрудники") > 0 использовать из БСП, чтобы понять что основной объект формы не Форма.Объект, а Форма.Сотрудник?
32. PLAstic 289 11.08.22 12:40 Сейчас в теме
(31) Ну, в конкретном случае я бы поставил 5 за целеустремлённость и 2 за грамотность реализации.
В механизме подключаемых команд тебе передаётся множество параметров, которые помогут ответить, откуда идёт вызов и к кому его хотели применить. Например, во внешнюю обработку заполнения с типом ОткрытиеФормы передаётся как сама исходная форма, так и объект(ы). Поэтому тут ничего выдумывать не надо, делаем по инструкции.
Ты сам признал, что есть вариант подключить нужные объекты к подсистеме "Подключаемые команды". Сделай это и у тебя откроется возможность реализовать этот механизм без колхоза.

На всякий случай ссылка на описание подсистемы.
33. sapervodichka 6178 11.08.22 13:55 Сейчас в теме
(32) спасибо, я ранее читал, но кому-нибудь обязательно пригодятся эти ссылки
Оставьте свое сообщение

См. также

[Общий модуль] Динамическое формирование интерфейса Промо

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Библиотека готовых функций для разработки интерфейса формы и размещения на нём элементов формы с помощью программного кода.

28.08.2020    26187    rpgshnik    83    

Использование языковой модели GPT3 для создания интерфейса 1С на естественном языке

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 1С:Управление торговлей 11 1С:Управление торговлей 11 Бесплатно (free) Бесплатно (free)

Я взял типовую конфигурацию УТ редакции 11.5 Немного доработал запрос к языковой модели GPT-3 и получил возможность обращаться к учетной системе на естественном языке

15.01.2023    5916    mkalimulin    98    

Визуализация таблицы значений на управляемой форме

Универсальные функции Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Россия Россия Бесплатно (free) Бесплатно (free)

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

02.11.2022    1157    bvb    2    

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Универсальные обработки Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    8373    62    sapervodichka    83    

Разбор ошибок заполнения реквизитов формы объекта (мой топ-3)

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Идея статьи родилась в момент исправления очередной ошибки с заполнением реквизитов формы и особенно реквизитов табличных частей. Решил накидать небольшую шпаргалку и отсылаться к ней при необходимости.

30.08.2022    1547    zeltyr    3    

{UI/UX} Свой всплывающий информер у элемента формы

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

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

12.08.2022    4180    rpgshnik    34    

Строим графы средствами 1С (без GraphViz) Промо

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    27458    slozhenikin_com    20    

Гарантированное проведение документов (подключаемое расширение)

Обработка документов Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Гарантированное проведение указанного в регистре сведений списка документов. Регистрируем документы к проведению с помощью произвольных отборов СКД в регистре сведений, далее запускаем фоновое проведение в нескольких потоках. Проведенные документы удаляются из регистра, по непроведенным регистрируются ошибки.

4 стартмани

11.08.2022    5438    13    sapervodichka    27    

Параметризация печатных форм под контрагентов (подключаемое расширение)

Печатные формы Адаптация типовых решений Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Расширение добавляет возможности параметризации печати для контрагентов. Подробнее описано здесь https://infostart.ru/1c/articles/1510459/

10 стартмани

05.08.2022    6017    7    sapervodichka    4    

Просмотр объектов очереди сообщений в 1С:Документооборот

Адаптация типовых решений Документооборот и делопроизводство Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

В базах с бесшовной интеграцией с 1С:Документооборот есть Регистр сведений "Очередь сообщений в 1С:Документооборот". Для пользователя он мало информативен. Расширение позволяет просматривать сообщение в человеческом виде. И понимать проблему до объекта.

2 стартмани

02.08.2022    6019    17    sapervodichka    4    

Перевод интерфейса конфигурации с использованием программы 1С:Переводчик Промо

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Перевод текстов интерфейсов конфигураций без использования технологии памяти переводов приводит к рассогласованности терминологии, когда один и тот же объект в конфигурации в разных меню может называться по-разному. Решить эту проблему можно используя программу 1С:Переводчик.

09.02.2015    52083    boogie    21    

Программный вывод таблицы значений в таблицу на управляемой форме

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Россия Россия Бесплатно (free) Бесплатно (free)

Функционал данного механизма служит для программного вывода "Таблицы значений" в реквизит управляемой  формы с типом "ДанныеФормыКоллекция". Может быть полезен в задачах, где состав колонок выгружаемой таблицы значений может меняться.

15.04.2022    4031    ns_bulatov    5    

Поддержка пользователей [Alt+S] (подключаемое расширение)

Анализ и проектирование ИТ-систем ServiceDesk, HelpDesk Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Расширение, подключаемое к базе 1С для решения задач поддержки пользователей. Позволяет быстро (по кнопке или комбинации клавиш Alt+S), не выходя из программы 1С из любой формы, создать обращение к консультантам и программистам со скринами, файлами, в привязке к проблемному объекту (документу, справочнику, отчету, обработке и т.п.). Вести переписку по обращениям, отслеживать их выполнение с трудозатратами и уведомлять участников через механизмы: Telegram, Обсуждения 1С и Электронную почту. Код открыт и расширение может развиваться и быть доработано под индивидуальные потребности.

9 стартмани

25.03.2022    9800    91    sapervodichka    16    

Интерактивная справка [Alt+I] (подключаемое расширение)

Анализ и проектирование ИТ-систем Управление знаниями (Knowledge Base) Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Дополнительная справка, подключаемая к базе 1С. Содержит дерево разделов и статьи. Позволяет создавать статьи с картинками, прикреплять к ним файлы и видео, а также связывать статьи с объектами 1С (документам, справочникам, отчетам). Вызывается на динамически создаваемую кнопку панели либо быстрой комбинацией клавиш Alt+I.

9 стартмани

10.03.2022    9024    80    sapervodichka    38    

Старые обработки в новом (Управляемом) интерфейсе Промо

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Управляемые формы Управляемые формы Бесплатно (free) Бесплатно (free)

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

12.08.2016    61794    valerasv    7    

Защита объектов от изменения обменом

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Расширение позволяет пользователю заблокировать объект 1С (документ, справочник) от изменения последующими загрузками данных или обменами.

5 стартмани

05.01.2022    12816    48    sapervodichka    52    

Восстановление пропавшего меню в интерфейсе с обычными формами без полной чистки кеша

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Украина Украина Бесплатно (free) Бесплатно (free)

Как многим известно, пользователь в обычных формах может убрать любую панель из интерфейса так, что восстановить ее можно только чисткой кеша. Но как быть, если кеш жалко :?

21.12.2021    1429    bulpi    4    

Программный интерфейс для доработки форм

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

25.11.2021    6026    AtamanovYS    19    

Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя Промо

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей. Как сохранить ЦВЕТ

22.06.2015    25524    Tatitutu    12    

Создание стартовой базы

Обмен между базами 1C Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Часто требуется создать «Новую базу» почти пустую, но совпадающую с «Исходной базой» по необходимым обязательным настройкам: константам, регистрам сведений, справочникам, видам субконто и планами счетов и т.п., при этом уникальные идентификаторы объектов должны совпадать.

1 стартмани

11.10.2021    12499    23    sapervodichka    48    

Программно свернуть/развернуть узел динамического списка (с основной таблицей). Жирная точка над всеми "i".

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Какой пользователь не мечтал поменьше тыркать кнопкой? Особенно в малюсенькие +/- в "древесных" динамических списках. Если вас тоже озадачили, чтобы, при выборе узла дерева сами развернулись все его вложенные элементы , а при выборе другого узла - так же автоматом свернулась ранее развернутая ветка (причем эти узлы могут находится в разных "отношениях" друг с другом)... То вам - сюда.

08.10.2021    3303    e-9    13    

Хранение и редактирование дополнительных параметров в регламентированном отчете. Для начинающих. Промо

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

Для начинающих. Как редактировать дополнительные параметры регламентированного отчета, изменив только модуль формы и модуль объекта. Как сохранить дополнительные параметры в данных отчета.

22.01.2014    21526    KapasMordorov    4    

Как читать чужой код? Часть 4. Программный интерфейс. Исправление чужих доработок

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Во всех вакансиях есть требование - умение читать чужой код. Но ни на одних курсах специально этому не учат. Чтобы устранить это противоречие, пишу данную статью. Рассмотрю случаи, в которых нам необходимо разбирать чужой код, поймём, чей код мы пытаемся разобрать, зачем и, главное, как. В статье описан личный опыт длиною в 18 лет начиная с версии платформы 7.7. Статья будет большой, набираемся терпения). Статья содержит в себе описание сценариев разбора кода, т.е. набор шагов. В статье не получится показать это на практике. Для этого планирую сделать онлайн или оффлайн курс, где на примерах будет показан разбор незнакомого кода. Статья разбита на 4 публикации для удобства изучения.

20.09.2021    4080    biimmap    9    

Перенос расшифровки в пользовательские настройки

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Как перенести данные расшифровки в пользовательские настройки.

11.08.2021    1009    scientes    1    

Доп. панель Alt+Z

Инструменты администратора БД Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Панель, вызываемая для объекта комбинацией клавиш Alt+Z (для документа, справочника, плана вида характеристик, плана счетов и т.д.). Возможности: Редактор всех реквизитов, таблиц и движений, Анализ прав к объекту, Поиск ссылок на объект с фильтрами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Подключается как Расширение.

1 стартмани

24.06.2021    15889    157    sapervodichka    72    

Изменение размера картинок "на лету" с помощью NGINX

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Пример использования nginx и image_filter для сжатия картинок.

26.05.2021    2778    malikov_pro    21    

Динамический список и поиск... неприятностей

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Страх и ненависть в поиске по динамическому списку, или "Кое-что о неоптимальном отборе".

17.03.2021    9675    Yashazz    37    

Пример работы с диаграммой Ганта в 1С

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Пример работы с очень нужным и важным, по моему мнению, объектом в 1С «Диаграммой Ганта».

24.02.2021    12103    JIEX@    4    

Пример технического задания Промо

Анализ и проектирование ИТ-систем Абонемент ($m) Абонемент ($m)

Пример технического задания для практического понимания основных разделов. Надеюсь окажется полезным.

1 стартмани

28.08.2012    191811    sapervodichka    61    

Групповое добавление и удаление ролей из списка профилей

Роли и права Платформа 1С v8.3 Платформа 1С v8.3 Управление правами Управление правами Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Подключаемая обработка. Помогает при конструировании профилей доступа пользователей (настройке прав пользователей), экономит время на добавлении/удалении одной и той же роли сразу в нескольких профилях.

2 стартмани

14.12.2020    12380    58    sapervodichka    10    

Программное условное оформление динамического списка, раскраска строк списка по цветам справочника или любым другим условиям (условное оформление)

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Управляемые формы Управляемые формы Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

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

30.11.2020    13847    SizovE    5    

[mobile] Переносим HTML интерфейс на 1С

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

Разберем методы переноса HTML интерфейса на 1С на примере реализации нижнего меню для мобильного приложения. Сравним методы между собой. Данные методы можно применять не только для мобильной разработки, но и для веб-клиента и т.д

02.11.2020    12403    leobrn    82    

Программное генерирование кнопочек для удобного управления уровнями группировки в отчетах (версия 2a). Промо

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Россия Россия Бесплатно (free) Бесплатно (free)

В табличных документах 1С 8 имеется отличная возможность использования группировок, но управление уровнями группировок через контекстное меню не очень удобное. В своих отчетах для управления уровнями группировок я использую маленькие кнопочки на поле табличного документа - это намного удобнее и быстрее, чем через контекстное меню.

09.04.2011    48418    mtv:)    75    

Быстрая кодогенерация программной доработки форм

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

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

12.10.2020    2961    huxuxuya    29    

Цветовая схема конфигуратора в стиле OneScript

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Россия Россия Бесплатно (free) Бесплатно (free)

Цветовая схема конфигуратора 1С максимально приближенная к стандартной цветовой схеме OneScript в VS Code.

01.10.2020    2032    DmitrySinichnikov    4    

Интерактивная справка по объектам 1С (подключаемое расширение)

Управление знаниями (Knowledge Base) Платформа 1С v8.3 Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:ERP Управление предприятием 2 Абонемент ($m) Абонемент ($m)

База знаний, подключаемая к объектам основной базы. Пополняется интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями.

10 стартмани

29.09.2020    23063    133    sapervodichka    63    

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Промо

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Россия Россия Бесплатно (free) Бесплатно (free)

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Очень часто необходимо программно сформировать заголовок отчета, например добавить туда наименование валюты, в которой формируется отчет. Можно использовать макеты, но во многих случаях это не оправданно.

27.07.2012    34366    milkers    9    

Рендеринг элементов управляемого интерфейса

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Управляемые формы Управляемые формы Россия Россия Бесплатно (free) Бесплатно (free)

Реализация отображения всего состояния формы проще, чем работа по изменениям. Однако использование идеи разделения алгоритмов на программные слои MVC и построения реактивных систем позволяет получить не только простые и масштабируемые решения, но и производительные интерфейсы. Рассмотрим примеры таких реализаций на основе использования фреймворка «Управление состоянием»: Информационная надпись, Заголовок формы, Свертываемая группа, Отключаемые панели.

22.09.2020    4782    kalyaka    5    

Значения по умолчанию для пользователей (Расширение)

Администрирование СУБД Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

При заполнении документов и справочников пользователи часто сталкиваются с необходимостью ввода одних и тех же реквизитов. Заполнение в документах некоторых из них, таких как: Организация, Склад и т.п. - выполняется реализованным в 1С механизмом подстановки значения из последних 3-5 введенных документов. Если же вы хотите заполнять все реквизиты шапки (и даты, и флажки, и другие поля, включая дополнительные реквизиты), то вам поможет данный механизм.

4 стартмани

21.09.2020    18144    129    sapervodichka    44    

Рабочее место кассира для touch-screen и программируемой клавиатуры продавца в «1С: Розница» Промо

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 1С:Розница 1С:Розница Бесплатно (free) Бесплатно (free)

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

29.11.2012    49720    aavolkoff    49    

Медленно формируются отчеты в БП 3, способ исправления

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Бухгалтерия 3.0 Бесплатно (free) Бесплатно (free)

При формировании любых отчетов, но в особенности оборотно-сальдовой ведомости в бухгалтерии 3, очень долго формировался отчет, ПОЯВЛЯЛСЯ ЖЕЛТЫЙ КОТ, разумеется у бухгалтера невроз, да и у меня тоже. Что только ни делал: тестирование и исправление с пересчетом итогов, настройка SQL, отключение фоновых заданий, обновление платформы и конфигурации, а толку нет, регламентные операции по скулю тоже сделал. И что же сделал, а вот что:

21.07.2020    4696    VID1234    10    

Использование Стека вызовов в качестве условия оператора Если [...] Тогда

Механизмы платформы 1С Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Делюсь интересным приёмом, позволяющим использовать данные стека исполнения кода 1С в качестве условия, накладываемого на выполнение кода.

12.07.2020    12408    sapervodichka    64    

Уведомление пользователей об изменениях в объектах (расширение)

Инструментарий разработчика Платформа 1С v8.3 Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Комплексная автоматизация 2.х Абонемент ($m) Абонемент ($m)

Позволяет без доработок настроить уведомления пользователям об изменениях объектов и их реквизитов. Уведомления отправляются в виде задач по проверке объектов с ссылками на объекты.

2 стартмани

06.07.2020    14218    56    sapervodichka    37    

Бухгалтерия предприятия 3.0 интерфейс, аналогичный 1С:Бухгалтерии 7.7; Промо

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Бухгалтерия 2.0 Россия Россия Бесплатно (free) Бесплатно (free)

Бухгалтерия предприятия, редакция 3.0, версия 3.0.14. Добавлена возможность использовать интерфейс, аналогичный 1С:Бухгалтерии 7.7;

20.09.2012    38626    dour-dead    18    

Программное открытие отчета

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Памятка, как быстро создать простенький отчет, открываемый программно и с расшифровкой. Толстый/тонкий клиент.

28.06.2020    9145    da_1c    4    

Памятка работ по задаче 1С

Анализ и проектирование ИТ-систем Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Памятка выполняемых работ по решению длительных задач по 1С.

1 стартмани

25.06.2020    12323    sapervodichka    0