Программно вызвать диалог Сравнить файлы

1. kraynev-navi 681 23.11.15 09:45 Сейчас в теме
Доброго дня!
Хочется сравнить программно два файла. Как при вызове в режиме Предприятие из меню Файлы->Сравнить файлы.
Раньше был объект СравнениеФайлов для толстого клиента.
Кто-нибудь пробовал такое для управляемых форм? Хотя бы просто по команде с формы открыть этот диалог и заполнить пути у сравниваемых файлов.
Пока на ум приходит только скрипт в каком-нибудь AutoIt-е.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. adva 45 23.11.15 09:58 Сейчас в теме
(1) из СП видно, что доступен для толстого клиента, значит в упр. в режиме тоже должно работать (но не в тонком клиенте)
4. kraynev-navi 681 23.11.15 10:13 Сейчас в теме
(3) adva,
У меня в 8.3.6.2152 в СП этого объекта вовсе нет.
(2)
Вопрос именно в программном вызове. Пользователь щелкнул по кнопке, я программно подставил пути файлов в стандартный диалог и открыл его.
5. vikad 131 23.11.15 10:22 Сейчас в теме
(4) kraynev-navi, http://infostart.ru/public/292916/ здесь было что-то похожее
kraynev-navi; +1 Ответить
7. kraynev-navi 681 23.11.15 17:06 Сейчас в теме
(5)
Это видел, спасибо. Буду смотреть в подробностях
(6)
Спасибо, но хочу в тонком. Буду искать.

Смотрел в сторону журнала действий пользователя и его разбора. Но это работает только в тестируемом приложении да и вставку путей к файлом он игнорировал.
&НаКлиенте
Процедура ТестовыйСценарий_23_11_2015()

	ТестовоеПриложение = Новый ТестируемоеПриложение();
	ВремяОкончанияОжидания = ТекущаяДата() + 60;
	Подключен = Ложь;
	ОписаниеОшибкиСоединения = "";
	Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
		Попытка
			ТестовоеПриложение.УстановитьСоединение();
			Подключен = Истина;
			Прервать;
		Исключение
			ОписаниеОшибкиСоединения = ОписаниеОшибки();
		КонецПопытки;
	КонецЦикла;
	Если Не Подключен Тогда
		ТестовоеПриложение = Неопределено;
		Сообщить("Не смогли установить соединение! " + Символы.ПС + ОписаниеОшибкиСоединения);
		Возврат;
	КонецЕсли;

	ОкноПриложенияСравнитьФайлыКнопкаOKНажать(ТестовоеПриложение);
	ОкноПриложения1СПредприятиеКнопкаOKНажать(ТестовоеПриложение);

КонецПроцедуры

&НаКлиенте
Процедура ОкноПриложенияСравнитьФайлыКнопкаOKНажать(ТестовоеПриложение)
	ОкноПриложенияСравнитьФайлы = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Сравнить файлы", , 30);
	ОкноПриложенияСравнитьФайлыФормаСравнитьФайлы = ОкноПриложенияСравнитьФайлы.НайтиОбъект(Тип("ТестируемаяФорма"), "Сравнить файлы");
	КнопкаOK = ОкноПриложенияСравнитьФайлыФормаСравнитьФайлы.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "OK");
	КнопкаOK.Нажать();

КонецПроцедуры

&НаКлиенте
Процедура ОкноПриложения1СПредприятиеКнопкаOKНажать(ТестовоеПриложение)

	ОкноПриложения1СПредприятие = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "1С:Предприятие", , 30);
	ОкноПриложения1СПредприятиеФорма1СПредприятие = ОкноПриложения1СПредприятие.НайтиОбъект(Тип("ТестируемаяФорма"), "1С:Предприятие");
	КнопкаOK = ОкноПриложения1СПредприятиеФорма1СПредприятие.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "OK");
	КнопкаOK.Нажать();

КонецПроцедуры
Показать
8. Boneman 302 23.11.15 17:24 Сейчас в теме
(7) kraynev-navi, можно попробовать сделать специального пользователя, который будет запускаться именно в толстом клиенте.
И из обработки в тонком клиенте, подключатся по оле к этой же самой базе, только не по ком, а по application.
По идее, получим именно толстого клиента, где будут доступны методы сравнения.
))))))
10. kraynev-navi 681 24.11.15 09:44 Сейчас в теме
(8) монструозно (2 окна) и нестабильно.
(9) думал тоже, но хотелось имеющимися средствами 1С. Тем более, что они как раз для табличных документов, как мне надо.
6. Boneman 302 23.11.15 10:36 Сейчас в теме
(4) kraynev-navi,
да программно, только в толстом
СравнениеФайлов (FileCompare)
Свойства:

ВторойФайл (SecondFile)
ИгнорироватьПустоеПространство (IgnoreWhiteSpace)
ПервыйФайл (FirstFile)
СпособСравнения (CompareMethod)
УчитыватьРазделителиСтрок (EOLSensitive)
УчитыватьРегистр (CaseSensitive)

Методы:

ПоказатьРазличия (ShowDifferences)
ПоказатьРазличияМодально (ShowDifferencesModally)
Сравнить (Compare)

Конструкторы:

По умолчанию

Описание:

Предназначен для сравнения и определения различий между двумя файлами с учетом их структуры.

Доступность:

Толстый клиент.
Показать
2. Boneman 302 23.11.15 09:51 Сейчас в теме
в управляемых тоже в меню, файл - есть сравнение файлов, также как и в обычном клиенте
9. Boneman 302 23.11.15 17:35 Сейчас в теме
если речь не о полноценной 1Совской сравниловке, а о чем-то определенном. Типа сравнить 2 текстовых файла,
то можно поискать левую софтину, по сравнению, и тупо ее вызывать из 1С с нужными параметрами. Благо таких софтин, гугль навалом выводит.
Ну или написать свою, посложнее конечно..но можно что-то сварганить
11. kraynev-navi 681 26.11.15 13:48 Сейчас в теме
Качнул http://infostart.ru/public/292916/ - работает. Жаль, что все-таки автохоткей, а не платформенная фича...

Для "такси" поправить одно место в макете:

SendMode InputThenPlay
SendInput,{ALT}{DOWN}{RIGHT}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}
SendInput,<%FILENAME1%>
SendInput,{TAB}
SendInput,<%FILENAME2%>
SendInput,{TAB}
SendInput,{DOWN}
Sleep, 200
SendInput,{UP}
SendInput,{UP}
SendInput,{UP}
SendInput,{UP}
SendInput,{DOWN}
SendInput,{ENTER}
SendInput,{ENTER}
Показать


... и можно использовать для своих целей как основу.
klinval; erd; dj_serega; vikad; +4 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот