0. ZhokhovM 378 21.07.16 09:49 Сейчас в теме

Недокументированное использование стандартных форм

Вам не хватает возможностей в платформе 1С или у Вас нет времени на углубленное изучение платформы 1С?
Рассмотрены возможности использования стандартных форм, вызываемых из платформы.

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

Комментарии
Избранное Подписка Сортировка: Древо
1. klinval 273 26.07.16 13:41 Сейчас в теме
А "Все действия" - "Настроить список" - эту форму/обработку можно получить вашей обработкой?
2. ZhokhovM 378 26.07.16 14:21 Сейчас в теме
(1) klinval, конечно, есть стандартная форма "UniversalListSettings.lf". В ней нужно восстанавливать связи между элементами и реквизитами непосредственно в обработке, такие как: Filter, Order, Group и т.д.
3. LSV79 1 27.07.16 07:14 Сейчас в теме
А зачем такие сложности?
http://infostart.ru/public/369487/ тут вариант значительно проще
Yashazz; serg_infostart; Spacer; ardn; kraynev-navi; JohnyDeath; kuntashov; +7 3 Ответить
4. ZhokhovM 378 27.07.16 09:24 Сейчас в теме
(3) LSV79, там нет вариантов со стандартными формами, только упоминания в комментариях
5. Serj1C 475 28.07.16 07:38 Сейчас в теме
Ой, ой, ой... На фоне шумихи с вирусом для 1С... Т.е. теперь можно подложить файлы в каталог бин и пользователь сам когда-нибудь да откроет обработку.
А также можно обойти ограничение на открытие внешних обработок...
Большая-большая дыра в безопасности каждой компании, где у пользователей есть доступ на запись в каталог bin
frkbvfnjh; Danil.Potapov; uncle_Vasya; kiv1c; Sergey-MX; ZhokhovM; AnryMc; the1; +8 Ответить
6. the1 372 28.07.16 09:02 Сейчас в теме
7. vano-ekt 1179 29.07.16 05:19 Сейчас в теме
екарук писала уже, но плюсану за обработку, лень копаться :-)
8. ZhokhovM 378 29.07.16 09:29 Сейчас в теме
10. fishca 1149 30.08.16 14:11 Сейчас в теме
11. ZhokhovM 378 30.08.16 15:06 Сейчас в теме
12. dolter 116 21.01.17 22:47 Сейчас в теме
А действительно... можно ли вытянуть стандартную форму, слегка ее переделать (например вставить попытку открыть другую форму из состава конфигурации в случае ее там присутствия) и поместить ее обратно в bin?
13. ZhokhovM 378 22.01.17 14:13 Сейчас в теме
(12)я знаю только вытянуть и переделать форму но поместить ее обратно в бин нет, не пробовал
14. dolter 116 28.01.17 22:40 Сейчас в теме
Нашел инструмент у Орефкова на сайте... Полностью разобрать получилось, а вот собрать пока не очень...
15. ander_ 18.05.17 05:55 Сейчас в теме
Что-то я не в теме. А зачем все это? Поясните плиз где и как это может пригодиться
16. ZhokhovM 378 18.05.17 09:51 Сейчас в теме
(15)
где и как это может пригодиться

Мне она пригодилась для тестирования для конфигураций: "Управление торговлей, редакция 11" и "Управление предприятием, редакция 2". На всякий случай указал первоисточник.
17. ander_ 18.05.17 16:35 Сейчас в теме
(16)
а еще чуть подробней.. :)
что здесь имеется ввиду под "тестированием"?
может пример тестового сценария, в котором это используется... может так понятнее будет :(
18. ZhokhovM 378 18.05.17 17:26 Сейчас в теме
(17)ну изначально я тестировал руками все формы, вызываемые через меню все функции, например, открыть и закрыть формы документа или справочника, но после длительного использования были проблемы, что автоматически закрывается стандартная форма "Все функции" после выбора любой формы и деактивируется строка дерева значений "Table" после переоткрытия стандартной формы "Все функции", что практически невозможно было выбрать следующую форму нажатием стрелочки "вниз" или "вверх", так вот решил создать тему https://partners.v8.1c.ru/forum/topic/1510855, но ответа там до сих пор не дали, затем вспомнил про статью "Недокументированное использование стандартных обработок из меню "Все функции"" на инфостарте от автора екарук и мне нужно было придумать как стандартную форму "Все функции" вызываемую из платформы перенести во внешнюю обработку с формой для этого и была придумана мной статья. Все изменения касательно внешней обработки "Все функции" я писал выше.
19. ander_ 19.05.17 07:20 Сейчас в теме
(18)
Спасибо, теперь более-менее понятно.
47. buganov 57 05.06.19 18:12 Сейчас в теме
(18) а через ОткрытьФорму(...) нельзя было протестить?
48. ZhokhovM 378 05.06.19 18:54 Сейчас в теме
(47)так список форм нужен был не полный, а тот который в стандартной форме "Все функции". если открывать все формы, то там большинство не ошибки. например, при проверке материалов или совместимо 1с проверяет практически все формы и не все из них является ошибками.
20. ZhokhovM 378 19.05.17 09:15 Сейчас в теме
21. ZhokhovM 378 28.07.17 11:50 Сейчас в теме
28.07.2017:
Что изменилось:
Добавил внешнюю обработку "Стандартная форма "Все функции" для ERP". Проверял на версии ERP 2.4.1.126. На УТ данная обработка не подходит, так как к каждой конфигурации проверяется право доступа "TotalsControl", "CollaborationSystemInfoBaseRegistration" и т.д.
22. tormozit 5511 15.04.18 12:40 Сейчас в теме
Спасибо. Познавательно. Пометки в списке не учитываются при выгрузке (ошибка). Добавил формы истории данных
	л_Формы.Добавить("DataHistoryVersionData", "Data history data");
	л_Формы.Добавить("DataHistoryVersions", "Data history versions");
	л_Формы.Добавить("DataHistoryVersionsDiff", "Data history difference");
23. ZhokhovM 378 15.04.18 13:13 Сейчас в теме
35. tormozit 5511 01.06.19 22:20 Сейчас в теме
(22) 1С:Предприятие 8.3 (8.3.13.1865)
DataHistoryVersions - открывается
DataHistoryVersionData - не открывается (ошибка - форма не обнаружена)
DataHistoryVersionsDiff - не открывается (ошибка - форма не обнаружена)

При выгрузке в файл аналогично -
{ВнешняяОбработка.ZhokhovM_ConversionOfStandardForms.МодульОбъекта(39)}: Ошибка при вызове метода контекста (КопироватьФайл)
КопироватьФайл("v8res://mngbase/"+п_Форма.Значение+".lf",п_Файл.ПолноеИмя);
по причине:
Ошибка копирования файлов
по причине:
Файл не обнаружен 'v8res://mngbase/DataHistoryVersionData.lf'. Ресурс не найден

Нашел похожие формы
DataHistoryVersionDataRuForm
DataHistoryVersionsDiffRuForm
Но уже с русскими именами параметров
ZhokhovM; acanta; +2 Ответить
36. tormozit 5511 01.06.19 22:56 Сейчас в теме
(35) DataHistoryVersionsDiffRuForm DataHistoryVersionDifferenecesRuForm
39. ZhokhovM 378 04.06.19 15:34 Сейчас в теме
(36)Добавил. Список изменений предоставил. Файлы, которые выгружаются с ошибками - рекомендуется выгружать на старых платформах. Похожие формы обнаруживаются только в новых платформах.
37. ZhokhovM 378 02.06.19 01:58 Сейчас в теме
24. ZhokhovM 378 19.04.18 14:46 Сейчас в теме
19.04.2017:
Что изменилось:
Добавлены формы:
BorderChoose
ChartLabelArea
ChartAxis
ChartScale
GanttChartChoiceValue
DataHistoryVersions
DataHistoryVersionsFilter
DataHistoryVersionsFilterUser
DataHistoryVersionData
DataHistoryVersionsDiff
ECSMainForm
fdSave
fullscreen
moxelName
moxelNames
moxelDupName
NotificationsDlgNew
TrendLines
Исправлена ошибка, в которой не учитываются пометки в списке при выгрузке.
25. romankoav 02.08.18 17:57 Сейчас в теме
А как программно открыть такую форму? Например DataHistoryVersions
26. ZhokhovM 378 02.08.18 18:25 Сейчас в теме
(25)воспользоваться обработкой "Преобразование стандартных форм.epf" и вызвать форму методом ОткрытьФорму("ВнешняяОбработка.DataHistoryVersions.Форма");
27. romankoav 03.08.18 17:38 Сейчас в теме
(26) То есть без вынесения из конфигурации никак?
28. ZhokhovM 378 03.08.18 19:44 Сейчас в теме
(27)Никак.
Есть пример в первоисточнике:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПодключитьВнешнююОбработкуНаСервере();
ОткрытьФорму("ВнешняяОбработка.StandardFindByRef.Форма");
КонецПроцедуры

&НаСервере
Процедура ПодключитьВнешнююОбработкуНаСервере()
ВнешниеОбработки.Подключить("v8res://mngbase/StandardFindByRef.epf", "StandardFindByRef", false);
КонецПроцедуры

но сделать так же для стандартной формы не получится
ВнешниеОбработки.Подключить("v8res://mngbase/DataHistoryVersions.lf", "DataHistoryVersions", false);
29. unknown181538 24 13.10.18 20:14 Сейчас в теме
А настройка панели навигации в списке есть?
30. ZhokhovM 378 13.10.18 21:39 Сейчас в теме
31. unknown181538 24 13.10.18 23:07 Сейчас в теме
(30)
dcschangesettingsstructure
похоже на то. Понять бы еще, как ее отключить.
32. needmic 11 20.12.18 17:58 Сейчас в теме
А для обычных форм (не управляемых) что-то есть? Нужно стандартные обработки под обычным приложение достать. Или если это расписывалось где-то подкинте ссылку. Спасибо.
33. ZhokhovM 378 20.12.18 18:38 Сейчас в теме
(32)для обычных форм не делал. здесь только стандартные формы, а в первоисточнике - стандартные обработки.
34. needmic 11 21.12.18 10:38 Сейчас в теме
Ясно. Жаль. Просто стандартные обработки есть и в режиме запуска обычного приложения. Вот про эти обработки\формы (операции-проведения документов) хотелось узнать. Буду искать. Спасибо.
38. ZhokhovM 378 04.06.19 15:30 Сейчас в теме
04.06.2019:
Что изменилось:
Добавлены формы:
dcsgroupselecteditems_mobile
dcstableselecteditems_mobile
dcschartselecteditems_mobile
dcssettingselecteditems_mobile
dcsnestedsettingselecteditems_mobile
image
StandardPeriodM
moxelGoToCell
moxelInsert
moxelSplitCell
moxelRowHeight
moxelColumnWidth
moxelDeleteCell
MoxelHeadersAndFooters
moxelSectType
FontChooseDlgMobile
HelpM
PrintInfo
PageSettings
About
InputPurchaseEmu
SelectFileDlg
ChartPaletteDescription
ChartRefLines
ChartRefBands
DCSChartRefLine
DCSChartRefBand
ChartTypeChoose
DataHistoryChangeHistoryEnForm
DataHistoryChangeHistoryRuForm
DataHistoryVersionDataEnForm
DataHistoryVersionDataRuForm
DataHistoryVersionDifferencesEnForm
DataHistoryVersionDifferencesRuForm
DataHistoryVersionsFilterDialog
DataHistoryUsersChooseDialog
ECSSettings
SearchForm
SearchForm_ru
ECSMainFormMA
ECSMainFormMA2
ECSConvAddMA
ECSConvTitleMA
ECSConvMembersMA
ECSUserInfoMA
ECSContextConvSmallMA
ECSContextConvLargeMA
ECSFullUserInfoDlgMA
TypeDomainDlgMA
ECSSettingsMA
ECSContextConvSmallMAv13
ECSContextConvLargeMAv13
ECSConvAddMAv13
ECSConvMembersMAv13
ECSFullUserInfoDlgMAv13
ECSMainFormMAv13
ECSMainFormMA2v13
CertificateInfo
CryptoCertManager
Тестировал на платформе 8.3.14.1779.
40. SlavaKron 04.06.19 15:44 Сейчас в теме
Может просто обработкой получить системную папку bin 1С, прочитать файл mngbase_root.res. Найти в нём позицию первого ".lf" + нулевой байт и читать пока идут печатаемые символы или нулевой байт.
41. ZhokhovM 378 04.06.19 15:48 Сейчас в теме
(40)Тоже об этом подумал, но времени пока не нашлось.
45. SlavaKron 04.06.19 21:16 Сейчас в теме
(41)
&НаКлиенте
Процедура ПолучитьСписокРесурсов(Команда)
	
	ИменаРесурсов = Новый Соответствие;
	
	КаталогПрограммы = КаталогПрограммы();
	
	//ОбластьПоиска = НайтиФайлы(КаталогПрограммы, "*.*", Истина);
	
	ОбластьПоиска = Новый Массив;
	ОбластьПоиска.Добавить(КаталогПрограммы + "mngbase_root.res");
	ОбластьПоиска.Добавить(КаталогПрограммы + "mngbase_ru.res");
	
	Маркер = Новый БуферДвоичныхДанных(4);		
	Маркер[0] = КодСимвола(".");
	Маркер[1] = КодСимвола("l");
	Маркер[2] = КодСимвола("f");
	Маркер[3] = 0;
	
	БайтБуфер = Новый БуферДвоичныхДанных(1);
	
	Для Каждого ИмяФайла Из ОбластьПоиска Цикл
		ЧтениеДанных = Новый ЧтениеДанных(ИмяФайла);
		
		Если ЧтениеДанных.ПропуститьДо(Маркер) = -1 Тогда
			Продолжить
		КонецЕсли;
		Поток = ЧтениеДанных.ИсходныйПоток();
		Поток.Перейти(-6, ПозицияВПотоке.Текущая);		
		
		Пока Истина Цикл
			Поток.Прочитать(БайтБуфер, 0, 1);
			Если БайтБуфер[0] = 0 Тогда
				Прервать
			КонецЕсли;
			Поток.Перейти(-2, ПозицияВПотоке.Текущая);
		КонецЦикла;	
		
		ТекущееИмя = "";
		КодПредыдущего = 0;
		
		Пока Истина Цикл
			Поток.Прочитать(БайтБуфер, 0, 1);
			Код = БайтБуфер[0];
			
			Если Код = 0 Тогда
				Если КодПредыдущего = 0 Тогда
					Прервать
				КонецЕсли;
				ИменаРесурсов.Вставить(ТекущееИмя, ИмяФайла);
				ТекущееИмя = "";
			ИначеЕсли Код >= 32 И Код <= 122 Тогда
				ТекущееИмя = ТекущееИмя + Символ(Код);
			Иначе
				Прервать
			КонецЕсли;
			КодПредыдущего = Код;
		КонецЦикла;
		
		Если ТекущееИмя <> "" Тогда
			ИменаРесурсов.Вставить(ТекущееИмя, ИмяФайла);
		КонецЕсли;
		
		Поток.Закрыть();
		ЧтениеДанных.Закрыть();
	КонецЦикла;
	
	СписокИмен.Очистить();
	Для Каждого КлючИЗначение Из ИменаРесурсов Цикл
		НоваяСтрока = СписокИмен.Добавить();
		НоваяСтрока.ИмяРесурса = КлючИЗначение.Ключ;
		НоваяСтрока.Источник = КлючИЗначение.Значение;
	КонецЦикла;
	
	СписокИмен.Сортировать("ИмяРесурса");

КонецПроцедуры
Показать
Прикрепленные файлы:
ПолучитьСписокРесурсов.epf
ZhokhovM; molodoi1sneg; acanta; +3 Ответить
46. ZhokhovM 378 04.06.19 23:39 Сейчас в теме
(45)О, спасибо! Постараюсь внести изменения в ближайшие дни.
49. ZhokhovM 378 07.06.19 09:55 Сейчас в теме
(45)В список ресурсов попадает не только ресурс .lf, но и .mxl, .txt, .zip, .epf и т.д. Нужно слегка подправить код.
50. ZhokhovM 378 07.06.19 10:20 Сейчас в теме
07.06.2019:
Что изменилось:
Получение списка ресурсов непосредственно из файлов "mngbase_root.res" и "mngbase_ru.res".

Чтобы получить нужную системную папку bin 1С нужно запускать конкретную версию платформы.
43. ZhokhovM 378 04.06.19 16:26 Сейчас в теме
(40)А еще нужно уметь сравнивать формы: какие добавлены, а какие удалены.
42. acanta 60 04.06.19 15:52 Сейчас в теме
Для других языков свои версии формы истории данных?
44. ZhokhovM 378 04.06.19 16:53 Сейчас в теме
(42)Для языка RU в некоторых формах есть код или форма на русском.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

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

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программист стажер 1С
Нижний Новгород
зарплата от 30 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день