Доброго дня!
Хочется сравнить программно два файла. Как при вызове в режиме Предприятие из меню Файлы->Сравнить файлы.
Раньше был объект СравнениеФайлов для толстого клиента.
Кто-нибудь пробовал такое для управляемых форм? Хотя бы просто по команде с формы открыть этот диалог и заполнить пути у сравниваемых файлов.
Пока на ум приходит только скрипт в каком-нибудь AutoIt-е.
(3) adva,
У меня в 8.3.6.2152 в СП этого объекта вовсе нет.
(2)
Вопрос именно в программном вызове. Пользователь щелкнул по кнопке, я программно подставил пути файлов в стандартный диалог и открыл его.
(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.Нажать();
КонецПроцедуры
(7) kraynev-navi, можно попробовать сделать специального пользователя, который будет запускаться именно в толстом клиенте.
И из обработки в тонком клиенте, подключатся по оле к этой же самой базе, только не по ком, а по application.
По идее, получим именно толстого клиента, где будут доступны методы сравнения.
))))))
(8) монструозно (2 окна) и нестабильно.
(9) думал тоже, но хотелось имеющимися средствами 1С. Тем более, что они как раз для табличных документов, как мне надо.
если речь не о полноценной 1Совской сравниловке, а о чем-то определенном. Типа сравнить 2 текстовых файла,
то можно поискать левую софтину, по сравнению, и тупо ее вызывать из 1С с нужными параметрами. Благо таких софтин, гугль навалом выводит.
Ну или написать свою, посложнее конечно..но можно что-то сварганить