Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX

Публикация № 723210

Разработка - Инструментарий разработчика

sikuli тестирование интерфейса тестирование поведения

106
Как же не хватает клиента тестирования на платформе 8.2. Не кликнешь на кнопку, не выберешь из списка, не проверишь видит ли надпись пользователь. Воспользуемся внешним инструментом SikuliX, который позволит нам протестировать функционал форм. Данный инструмент легко встраивается в линию сборки и может "дружить" с уже известным многим Open-source продуктами.

SikuliX - кросс-платформенная визуальная среда создания сценариев-скриптов. При помощи этих скриптов можно взаимодействовать с любыми интерфейсами, отображаемым на мониторе. Например, следить за изображением с вебкамерами, программировать поведение игровых ботов, серфить в интернете и, конечно, тестировать любые интерфейсы любых программ.
Сценарии-скрипты могут быть написаны на Python, Jython, Ruby. Но не стоит пугаться, если вы не знаете этих языков. При помощи SikuliX IDE вы сможете создать сценарий просто накликав его мышкой, чем мы и займемся.
Главное, что надо запомнить: Сикули - это просто. 

Зачем SikuliX нужен программисту 1С

В платформе 8.3 появился функционал клиента тестирования, который позволяет проверить очень многое. По сути можно имитировать поведение пользователя.
Однако, если у вас 8.2 - вам не доступен этот функционал. Протестировать интерфейс вы сможете только при помощи сторонних программных средств. И здесь есть из чего выбрать.
Что же можно использовать?

  • AutoIt - целый язык для автоматизации. AutoIt использует симуляцию нажатия клавиш, движений мыши и манипуляции с окнами, элементами управления. Это позволяет автоматизировать задачи пользователя Windows, обойдя нехватку подобного функционала в других языках программирования и в 1С 8.2 в том числе.
  • AutoHotkey - аналогичная вышеназванной программа для написания макросов по автоматизации действий. Пожалуй, AHK даже более известен, в сравнении с AutoIt.

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

И все-таки Sikuli

После беглого знакомства с SikuliX для меня стали очевидны следующие преимущества этого продукта:

  • Сценарий тестирования накликивается мышкой
  • Причем накликивается очень быстро
  • Отладка интуитивно понятна, не вызывает вопросов
  • Результаты тестирования можно встраивать в существующие фреймворки тестирования (в нашем примере это будет xUnitFor1C)
  • Можно интегрировать в сборочную линию
  • Осваивается очень быстро

Установка SikuliX

Важное вступление! 
1. С кириллицей у меня SikuliX подружить так и не получилось. Поэтому все имена, пути и т.д. - только латиница. 
2. Отдельной разговор про имя пользователя. Библиотеки сикули устанавливаются в папку c:\Users\<ИмяПользователя>\AppData\Roaming\Sikulix\. Если имя пользователь, под которым планируется работа набран в кириллице - сикули не встанет. Но выход есть: можно сменить название папки (но не самой учетки). Об этом будет дальше.
3. Регистр в именах скриптов важен 1С.sikuli и 1с.sikuli - два разных скрипта, пусть у вас и Windows
4. Все выполнялось на "железном" компьютере с windows 7(х64), платформой 8.2.19.130, 8.2.19.83.

SikuliX - набор java-скриптов и библиотек. Для инсталляции нам потребуется еще и JAVA. Минимальные требования к Java согласно сайту разработчиков (от декабря 2017) http://sikulix.com/quickstart/ это версия 7 (JRE или JDK). Думаю, у большинства уже все установлено. Проверить версию можно простой командой:

Последний стабильный релиз Сикули можно взять отсюда: https://launchpad.net/sikuli/sikulix/1.1.1
Хотя лично я пользовался последними ночными версиями сборки, которые взял из девелопмента: https://raiman.github.io/SikuliX-2014/nightly.html (там есть ссылочка с jar)

 
 Если имя пользователя, под которым планируется работа написано в кириллице (Иван, Администратор, А.Блок).

У SikuliX нетривиальный инсталлятор. Качаем jar-файл, перемещаем его в папку, где планируете разместить SikuliX. У меня это, как видим, C:\SikuliX (диск и папка не играют роли). Начинаем установку командой:

java -jar sikulixsetup-1.1.2-20171218.172518-66-forsetup.jar

В вашем случае, имя файла будет другое.

Установщик начинает работу и предлагает выбрать один из вариантов. Выбираем как на скриншоте первый пункт, который проинсталлирует нам SikuliX вместе с его IDE:

Далее продолжаем инсталляцию поддакивая установщику:

 

И только в одном месте мы скажем нет. Дело в том, что на этапе установки Jython 2.7.0 скрипт так и не захотел запускаться и пришлось переинсталлировать Сикули. Поэтому на этом этапе отвечаем "NO" и устанавливаем Jython 2.5.4:


 
Кстати, если что-то пошло не так можно все пересоздать. Для этого удаляем все из установочной директории и повторяем установку как надо.

Если установка прошла успешно должно появиться окошко вида:


 
Если его нет, значит что-то сделано не так. Обратите внимание на кириллицу, Jython, перечитайте эту инструкцию по установке сначала. И переустановите Sikuli.

Наш первый Hello World

Запустим Sikuli IDE. Для этого выполним команду (можно ее вывести в ярлыки):

runsikulix.cmd

Запускается среда разработки. Выглядит довольно просто. Сюда можно кодить в Pyton-е. Но мы хотим быстрого старта и программирования мышкой. Начнем.

Программируем мышкой

Давайте заставим Сикули создать новый текстовый документ в 1С.
Для начала запустим 1С в режиме предприятия. Напомню, у меня это 8.2. Конечно, по-честному, нам надо создать скрипт, который сам запускает 1С, но это будет позже. 
Итак, 1С-ка запущена. У меня это голая конфигурация без всего.

В Сикули кликаем на команду click и в рабочую область попадает новая команда:

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


 
Тут сразу возникает вопрос, почему такая большая область. Может нужно выбрать только сам значок? Более большая область позволяет Сикули выбрать именно стандартную панель. Вдруг на мониторе сейчас есть другое приложение с аналогичной иконкой. Или может быть такой значок есть на форме ранее открытой в 1С.

Вот, что у нас получилось:

 
Давайте сразу попробуем выполнить этот скрипт и нажмем на кнопку "Выполнить". Естественно, нам предложат сохранить нашу работу, согласимся:


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


 
Перейдем на закладку Смещение цели и укажем нужный нам значок, кликнув по нему. Видим, что перекрестие из центра картинки сместилось на центр значка "Новый документ", жмем "Ок":


 
Выполним наш скрипт. Теперь все отлично, открылось окошко выбора типа нового документа:


 
Если бы нас интересовала графическая схема, можно было бы аналогичным способом выбрать этот пункт, но нам нужен Текстовый документ, а он уже выбран. Можем нажать на кнопку ОК, или нажать Enter на клавиатуре. Выполним последнее, ибо это проще. Введем две команды:


 
sleep(1) позволит сделать секундную паузу, чтобы окно успело открыться перед тем, как мы пошлем "в него" наш Enter. 
type(Key.ENTER) - как раз передает Enter.

И финальный аккорд - вывод нашего "Hello, World!"


 
Здесь как мы видим команда Paste, а не Type. Почему? Потому что Sikuli при помощи этой команды может ввести только латиницу. А вот команда Paste вставит нужную нам строку в любой кодировке.

Вот как это работает 

Все так просто! Давайте сделаем настоящий тест. 

Тестируем интерфейс формы

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

Процедура Реквизит1ПриИзменении(Элемент)
	Сообщить("Шеф, все пропало");
	ЭлементыФормы.Реквизит2.Видимость=Ложь;
КонецПроцедуры

При реализации теперь не буду тщательно детализировать каждый чих, лучше обильно откомментирую код. 
Сценарий у меня получился вот таким. Все прекрасно работает в Sikuli IDE (но все-таки это еще не финальная версия)

(Полный текст сценария размещен в исходниках в конце статьи)

Про ошибки в Sikuli IDE и логи

Кстати, совсем забыл про работу с ошибками. Вы, наверняка, уже наделали ошибок в своих скриптах и получили красные ромбики. Тут все красиво и прозрачно. Если что-то пошло не так, то сообщение проиллюстрирует проблему:

Лог показывает всю последовательность действий. Что у Sikuli получилось, что нет. Строки с ошибками нас будут интересовать на этапе "разбора полетов" и тут нам поможет правильное именование наших картинок.
Да-да, картинки по которым ходит/кликает Сикули можно переименовывать. Но только не забываем, что только в латиницу. 
Согласитесь, что фраза 

FindFailed: soobshenie_pro_Shefa.png: (113x17) in S(0)[0,0 1920x1080] E:Y, T:3,0

выглядит понятнее стандартного сообщения:

FindFailed: 1514017498867.png: (113x17) in S(0)[0,0 1920x1080] E:Y, T:3,0

Возможно, вы сразу догадаетесь, что нужно сделать не прибегая к IDE.


Автоматизируем запуск наших Sikuli-сценарии

До этого момента мы тестировали все "руками" в Sikuli IDE. Настало время автоматизировать наше тестирование интерфейса. Давайте создадим скрипт, который при выполнении сделает за нас все: запустит 1С-ку, прогонит сценарий, сохранит результаты для последующего анализа, и закроет сеанс.
Варианты скриптов могут быть разными, можно написать на чем удобно вам: bat-файл, onescript, powershell-скрипт.
Я сделаю bat-файл. Просто потому что его использовал и писал любой из нас. Никаких преимуществ перед другими способами он не имеет.
Если вы используете onescript, то лучше попрактиковаться в нем. Тем более, что у него есть возможность удалить запущенный процесс, если что-то пойдет не так. Под onescript есть библиотеки, которые позволяют настроить запуск 1С-ки, не морочась с путями и т.д. 
Итак, чтобы не усложнять, все-таки сейчас у нас будет bat-файл.

Сам запускающий батник имеет вид:

Сначала стартует 1С-ка. Далее поочередно запускаются jar-файлы со сценариями тестов. Конечно, это место нужно улучшить, получив все названия сценариев из самой папки, но пока не хочется усложнять восприятие.
Последняя строка - завершение работы самой 1С причем через Sikuli.
Все скрипты пишут в файл .log в собственную папку Sikuli-скрипта. Это важно: по содержимому этого файла мы потом определим, чем все закончилось.
Сам скрипт Sikuli чуть поправлен. Здесь появились чудо-конструкции с исполнением кода в попытке и повторное использование сценария закрытия всех окон.
Попытка необходима для того, чтобы выполнение bat-скрипта не прерывалось, даже если что-то в сценарии пойдет не так - элементарно он упадет.
Закрытие окон необходимо для того, чтобы "понаоткрытое" другими сценариями не мешало выполниться текущему sikuli-скрипту.

Простейший отчет по тестированию

Все запускается, выполняется, открывается и успешно закрывается. А где результат? А результаты в файлах .log. Дополним наш скрипт созданием простейшего файла-отчета.
Для этого создадим простейшую обработку 1С, которая проинспектирует логи и создаст файл отчета:

Процедура ПриОткрытии()
	Попытка
		СформироватьОтчетОТестированииИнтерфейса();
	Исключение
		ЗаписьЖурналаРегистрации("Ошибка записи отчета о тестировании интерфейса",УровеньЖурналаРегистрации.Ошибка,ОписаниеОшибки());
	КонецПопытки;
	ЗавершитьРаботуСистемы(Истина);
КонецПроцедуры

Процедура СформироватьОтчетОТестированииИнтерфейса()
	МассивПараметров = РазложитьСтрокуВМассивПодстрок_(ПараметрЗапуска,";");
	Если НЕ МассивПараметров.Количество()=2 Тогда
		Возврат
	КонецЕсли;
	ПутьККаталогамСикули = МассивПараметров[0];
	ПутьКФайлуОтчета = МассивПараметров[1];
	
	Текст = новый ТекстовыйДокумент;
	Текст.ДобавитьСтроку(Формат(ТекущаяДата(),"ДЛФ=DT"));
		
	МассивЛогФайлов = НайтиФайлы(ПутьККаталогамСикули,".log",Истина);
	Для каждого ФайлЛога Из МассивЛогФайлов Цикл
		ПутьККаталогу = ФайлЛога.Путь;
		ЕстьОшибка = ?(ВЛогеЕстьОшибка(ФайлЛога.ПолноеИмя),"OK","error");		
		Текст.ДобавитьСтроку(ПутьККаталогу+": "+ЕстьОшибка);
	КонецЦикла;	
	Текст.Записать(ПутьКФайлуОтчета,КодировкаТекста.ANSI);
	
КонецПроцедуры

Функция ВЛогеЕстьОшибка(ПутьКФайлу)
	Текст = новый ЧтениеТекста(ПутьКФайлу);
	Строка = Текст.Прочитать();
	Если Найти(нРег(Строка),"[error]")>0 Тогда
		Возврат Ложь;
	Иначе
		Возврат Истина;
	КонецЕсли;
КонецФункции

Функция РазложитьСтрокуВМассивПодстрок_(Знач Строка, Знач Разделитель = ";") Экспорт
	
	Результат = Новый Массив;
	
	Позиция = Найти(Строка, Разделитель);
	Пока Позиция > 0 Цикл
		Подстрока = Лев(Строка, Позиция - 1);
		Если Не ПустаяСтрока(Подстрока) Тогда
			Результат.Добавить(Подстрока);
		КонецЕсли;
		Строка = Сред(Строка, Позиция + СтрДлина(Разделитель));
		Позиция = Найти(Строка, Разделитель);
	КонецЦикла;
	
	Если Не ПустаяСтрока(Строка) Тогда
		Результат.Добавить(Строка);
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции

 

Дополним наш bat-ник еще одной строчкой. 

rem Создаем простой отчет
%exe1cv8% ENTERPRISE /IBNAME "Тестовая82" /UseHwLisenses /Lru /VLru /DisplayAllFunctions /O Normal /Execute %ProjectPath%СоздатьОтчетИЗакрыть1С.epf /C"%ProjectPath%;%ProjectPath%\otchet.txt"

 

Теперь мы получаем вот такой простенький отчет по тестированию интерфейса:

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

Красивый отчет по тестированию

Но хочется большего. Точнее большого, красивого и подробного. Например, в виде Allure-report как на картинке:


 
Для получения красивого отчета можно воспользоваться функционалом фреймворков Vanessa-Behavior или XUnitFor1C. Для моей реализации выберу последний. 
Создам простой тест-обработку. Для тех, кто работал с xUnit ничего нового – это стандартный текст обработки с необходимыми процедурами для запуска фреймворка. Вся «соль» содержится в последней однобуквенной процедуре. Сам модуль объекта:

Перем КонтекстЯдра;

Перем ТестируемаяФорма;
Перем НужноИсключениеЕслиНеНайденоДокументов;

//{ интерфейс тестирования

// директива препроцессора нужна для исключения ошибки загрузки в толстом клиенте управляемого приложения
#Если ТолстыйКлиентОбычноеПриложение Тогда

Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
	КонтекстЯдра = КонтекстЯдраПараметр;
КонецПроцедуры

Процедура ПередЗапускомТеста() Экспорт
	НачатьТранзакцию();
КонецПроцедуры

Процедура ПослеЗапускаТеста() Экспорт
	
	Если ТранзакцияАктивна() Тогда
		ОтменитьТранзакцию();
	КонецЕсли;
	
КонецПроцедуры


Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
	
	НаборТестов.СлучайныйПорядокВыполнения();
	НаборТестов.Добавить("_");
		
КонецПроцедуры
	
Процедура _() Экспорт
	
	Попытка
		ПутьКЭтойОбработке = КонтекстЯдра.ТекущийКонтейнер.Строки[0].Путь;
	Исключение
		ВызватьИсключение "Не нашли путь к обработке в КонтекстЯдра.ТекущийКонтейнер.Строки[0].Путь";
	КонецПопытки;
	
	Ф = новый Файл(ПутьКЭтойОбработке);
	ПутьКЛогу = Ф.Путь+".log";
	Ф = новый Файл(ПутьКЛогу);
	Если НЕ Ф.Существует() Тогда
		ВызватьИсключение "Не найден лог тестирования интерфейса";
	КонецЕсли;
	
	Текст = новый ЧтениеТекста(ПутьКЛогу);
	Прочитанное = Текст.Прочитать();
	Если Найти(Прочитанное,"[error]")>0 Тогда
		ВызватьИсключение Прочитанное;
	КонецЕсли;
	//Сообщить(КонтекстЯдра.Путь);
КонецПроцедуры


#КонецЕсли

Сохраняем тест с красноречивым именем, которое расскажет благодарным потомкам, что же все-таки тут проверялось. Кладем этот файл в папку к Sikuli-скрипту.
Если у нас несколько тестов, то копируем этот же файл в другие папки, только переименовывая его. Этот копи-паст отлично работает в дженкинсе (см. первый скриншот с Allure-отчетом).
Стандартно запускаем xUnitFor1C, указывает корневую папку с нашими sikuli-скриптами. хUnitFor1C сам прочтет все тесты, которые ему предстоит выполнить:


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

Собственно, наша задача решена. Техзадание выполнено, протестировано, отчет сформирован. Уже в этом виде решение приобрело законченный вид.
Пойдем чуть дальше. Типа бонус!

Добавляем красивый отчет в сборочную линию

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

chcp 65001

set runsikulicmd=c:\sikuliX\runsikulix.cmd
set ProjectPath=c:\test_sikuli\sikuli\
set exe1cv8="C:\Program Files (x86)\1cv82\8.2.19.83\bin\1cv8.exe"
set ConnectionString=/F"C:\Тестовая82_Инфостарт"
set TestTools=C:\TestTools\xUnitFor1C_82


rem запуск 1С, в котором будем тестировать интерфейс
start "1c" /MAX %exe1cv8% ENTERPRISE %ConnectionString% /UseHwLisenses /Lru /VLru /DisplayAllFunctions /O Normal


rem поочередный запуск всех тестов

rem Тест, который пройдет
set TECNAME=VsePropalo2.sikuli\
del /F %ProjectPath%%TECNAME%.log
call %runsikulicmd% -r %ProjectPath%%TECNAME% > %ProjectPath%%TECNAME%.log

rem Тест, который завалится
set TECNAME=No.sikuli\
del /F %ProjectPath%%TECNAME%.log
call %runsikulicmd% -r %ProjectPath%%TECNAME% > %ProjectPath%%TECNAME%.log

rem Закрываем 1с
set TECNAME=close1c.sikuli\
call %runsikulicmd% -r %ProjectPath%%TECNAME% > %ProjectPath%%TECNAME%.log

rem Создаем папку под отчеты
set TESTReportFOLDER="%WORKSPACE%\allure-results\"
RMDIR /S /Q %TESTReportFOLDER%
MD %TESTReportFOLDER%

rem Создаем Аллюр-отчет при помощи xUnitFor1C
%exe1cv8% ENTERPRISE %ConnectionString% /UseHwLisenses /DisplayAllFunctions /O Normal /Execute "%TestTools%\xddTestRunner.epf" /C "xddRun ЗагрузчикКаталога ""%ProjectPath%""; xddReport ГенераторОтчетаAllureXML ""%WORKSPACE%\allure-results\report_ordinary.xml""; xddShutdown;"

Внимание, это уже не запуск на моем компьютере, это уже bat-ник в Jenkins. Я сознательно опускаю детали установки Allure локально. Он локально-то по большому счету и не нужен. У меня, например, не стоит. А вот на сборочной линии мы активно пользуемся его наглядным функционалом.
Про установку Allure, Jenkins и прочего инструментария есть статьи на инфостарте и других ресурсах. Считаю, что тема слишком объемна и бессмысленно описывать это здесь.
Все скрипты и bat-файлы выкладываю в одном архиве, так как финальные тексты могут несколько отличаться от ранних скриншотов для статьи.

Итоги

SikuliX – это мощный и удобный инструмент для тестирования интерфейса. Наверняка, с его помощью можно решить еще не одну задачу. Программа проста, неприхотлива, имеет запуск из командной строки. Из зависимостей только Java (напоминаю, Sikuli – кроссплатформенна).
 

Что еще не сказано. Примечания

  • На разных скриншотах фигурируют разные пути C:\SikuliX, D:\SikuliX – не обращайте внимание, часть картинок с Jenkins, часть с собственного компьютера, никакой магии.
  • Для простоты я не использовал никакие логины-пароли и не проводил проверку под всякими ролями. Это остается за рамками данной статьи, но сложностей здесь немного.
  • Глядя на итоговый скрипт для Jenkins можно похихикать над «сборочной линией» - ее тут, конечно, нет.
  • В моем случае slave-нода запускается с экранным разрешением 1024х768. Запуск осуществляется под пользователем, для которого настроен автологин. И это следует учесть при создании Sikuli-сценариев. Возможно, есть более удачный способ запуска. Как проверить разрешение – в отчете есть информация на эту тему:


 

  • Пока работает Sikuli-скрипт - другие задачи с всплывающими окнами могут нарушать работу сценариев. Решение тривиальное - ничего больше не запускать во время тестирования или выделить отдельную машину.
  • Sikuli - в переводе с древнего индейского языка означает «глаз бога». Ох, уж эти разработчики и кулхацкеры...

Ссылки

Традиционно даю ссылки на полезную информацию для решивших пойти sikuli-путем:

Вроде все... Спасибо всем осилившим.
 

106

Скачать файлы

Наименование Файл Версия Размер
Архив всех Sikuli и bat скриптов, которые использовались, а также cf-ник
.ZIP 114,79Kb
02.01.18
2
.ZIP 114,79Kb 2 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. Evil Beaver 6359 03.01.18 13:11 Сейчас в теме
Отличная работа, спасибо!
2. pumbaE 628 03.01.18 13:17 Сейчас в теме
# -*- coding: UTF-8 -*-
разве не помогает в начале файла для преодоления проблем с кириллицей?
8. kraynev-navi 425 07.01.18 08:53 Сейчас в теме
(2) я имел в виду установить сам Sikuli в русскоязычную папку пользователя
3. as 04.01.18 00:22 Сейчас в теме
Отлично. Даже и не думал, что обычные формы можно так просто начать тестировать. Хотя про AutoIt знал :)
4. vermouth 04.01.18 15:25 Сейчас в теме
Киньте в меня камнем, кто не верит в такое тестирование.. правда... по числу негативных отзывов в мой адрес хочу понять - насколько я ошибаюсь
triviumfan; Brawler; grumagargler; +3 Ответить
9. kraynev-navi 425 07.01.18 08:54 Сейчас в теме
(4) что значит верить или не верить в тестирование? )))
5. Dzenn 348 05.01.18 01:25 Сейчас в теме
Открыл для себя что-то новое, хотя думаю, что мне эта технология никогда не пригодится. В каких случаях нужно проводить такие тестирования?
6. Region102 05.01.18 21:44 Сейчас в теме
(5) Для "домашней разработки" это не обязательно, но если пишешь серьезные приложения для бизнеса, то тестирование должно внедряться на самом начальном этапе разработки. Когда у вас конфигурация - это 5 справочников и 2 документа, то да, там можно и самому потыкать чтобы проверить корректность последних изменений. Когда же это уже десятки объектов метаданных с тесными взаимосвязями, то тут доработал что-то полугодичной давности и посыпались ошибки в работе по цепочке. Сейчас клиенты очень негативно относятся к 1С, так как тестировать в нашей среде принято на пользователях, а бизнес этого не любит.

Меня же больше интересует написание тестов для мобильной платформы и возможность внедрения в мобильной платформе нормальных сервисов для анализа ошибок в приложениях, типа fabric.io
7. ivanov660 1639 06.01.18 21:59 Сейчас в теме
(6) Бизнес в 1С не любит косяков, а также не готов платить за тестирование. Взаимоисключающие вещи к моему сожалению.
monkbest; artbear; +2 Ответить
11. kraynev-navi 425 07.01.18 09:04 Сейчас в теме
(7) Надо смотреть на тестирование как на часть разработки. Вы же не принуждаете бизнес оплачивать, например, собственное обучение. Вы обучаетесь за свой счет, понимая, что инвестируете в свое качество разработки. Выполняя тестирование вы также повышаете свое качество разработки.
artbear; grumagargler; +2 Ответить
16. ivanov660 1639 07.01.18 22:23 Сейчас в теме
(11)На самом деле косвенно конечно да. Откуда берутся деньги на внутренние нужды компании? С клиентов) Чем более "качественный" сервис - тем выше цена в прайсе.
За тестирование я двумя руками за, и за повышение квалификации сотрудников и качества разработки.
RSConsulting; +1 Ответить
14. grumagargler 613 07.01.18 19:10 Сейчас в теме
(7) Проводил неоднократно эксперименты с коллегами. Спрашиваю: - Вот вы говорите вам не хватает времени/денег делать работу качественно, так? Ответ – да, именно так. Хорошо, даем премию, даем времени пока не скажете «готово». Работаем…и в результате – почти ничего не изменилось. Другими словами, тестирование это не как сервис, за который можно дополнительно заплатить и оно появится (если мы говорим про программистов), это часть процесса разработки, требует обучения и повышения общей культуры создания программ.
UniversaLL; JohnyDeath; kuntashov; kraynev-navi; +4 Ответить
19. ivanov660 1639 07.01.18 22:35 Сейчас в теме
(14)Если подойти немного философски, то человек (особенно программист) ленивое существо) обремененное кучей проблем, а также набором устоявшихся поведенческих шаблонов. И вариант с отправлением в свободное плаванье в большинстве случаев приведет к провалу.
Если говорим про коллектив разработчиков продукта, то тут следует внести изменения в бизнес процесс разработки. Надо фактически заставить работать по изменившимся правилам. Обязательно потребуются инструкции и обучение. Иначе не работает, там где этого процесса не было.
10. kraynev-navi 425 07.01.18 08:59 Сейчас в теме
(6) А потом через год "вдруг" появляется еще пара документа и ты уже не помнишь как руками все это прочекать. А тестами все уже было покрыто и запускается на автомате.
Или другой случай - эти 5 справочников и 2 документа так удачны и составляют подсистему, что принято решение интегрировать в другие конфигурации. Тесты ускорят процесс в разы.
12. triviumfan 10 07.01.18 14:11 Сейчас в теме
Не понимаю, кто использует такого рода тестирование... оно же нереально затратное. А целесообразно ли?
Даже у самой 1с нет автоматического тестирования, зачастую вижу баги с переопределением обработчиков или удалением привязки их из формы, ввиду чего имеем "метод объекта не обнаружен".
13. Region102 07.01.18 16:24 Сейчас в теме
(12) Многие крупные разработчики до сих пор не применяют тестирование в принципе. Взять конфигурацию рарус УАТ проф начальных релизов и прогнать их стандартными средствами проверки конфигураций, и взять последние релизы, ошибки так и тянуться ГОДАМИ. А за внедрение этой конфигурации они миллионы подымают.

Внедряйте тестирование на начальном этапе и со временем люди при выборе качественного продукта обратятся к вам, а не к "старичкам" работающим по старинке. Да и свою карму поднимите.
JohnyDeath; kraynev-navi; +2 Ответить
15. kuntashov 365 07.01.18 22:12 Сейчас в теме
Спасибо за обзор инструмента. Сейчас как раз мучаюсь (другого приличного слова не подберу) с 1С:Сценарным тестированием для тестирования конфигураций на 8.2. Главная беда, конечно - с модальными окнами.

Есть пара вопросов:

1. Как вижу, SukuliX работает в отдельном сеансе/процессе и по идее должна уметь и модальные окна ловить. Я прав?

2. Почему xUnitFor1C используете только для геренации отчета? Не думали о том, чтобы запускать SikuliX-тесты при помощи xddTestRunner.epf, который запускался бы в сервисной информационной базе?

Это более естественный способ использования xUnitFor1C, чем отдельный запуск только для обработки логов. Принцип работы тестовой обработки для xUntitFor1C может быть таким:

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

* ЗаполнитьНаборТестов() сканирует переданный через файл конфигурации путь к каталогу с SikuliX-тестами и для каждого файла-теста создает тестовый случай в дереве тестов (тест = Тест_ДолженВыполнитьСкриптSikuliX, Параметр = Путь к конкретному SikuliX-скрипту)

Мы таким образом запускаем 1С:Сценарные тесты.
Основное преимущество такого подхода: не нужно поддерживать батник для последовательного запуска тестов.

Ваше решение, конечно же, идеально для всех, кому сначала ехать, а потом шашечки :)
17. kraynev-navi 425 07.01.18 22:24 Сейчас в теме
(15)
1. Да, должен. Примера нету, чтобы подтвердить.
2. Было бы идеально запускать внутри фреймворка. Но есть нюанс.
Пока тест не отработает, он никаких новых окон не позволит открыть кому бы то не было - скрипту, пользователю и т.д. Если вы предлагаете открывать второй экземпляр 1с в режиме предприятия, то у меня есть сомнения в том, что эти два экземпляра (псевдо "клиент-тестирования" и экземпляр с xUnit) не будут перекрывать друг друга. Тут надо придумывать хитрый механизм внутри sikuli, чтобы он разобрался в том, куда ему кликать, на какие окна смотреть. Тут подходим к задаче корректного определения нужного приложения, удержания фокуса и т.д. Попутно, подозреваю, будут еще нюансы. Мне кажется, этот путь сложнее.
Если не прав, буду рад замечаниям.
artbear; kuntashov; +2 Ответить
18. kraynev-navi 425 07.01.18 22:34 Сейчас в теме
(15) и еще дополню.
Конечно, батник не надо поддерживать (дописывая туда новые/удаляя старые). Делается onescript-е, который шерстит папки со сценариями. В этой связке только некрасив "лишний" файл обработки-теста внутри папки сикули.
Про ваш вариант с параметрами надо подумать, может лучше, да.
20. Gilev.Vyacheslav 1838 09.01.18 12:19 Сейчас в теме
а на 8.3 перейти не проще?
mitia.mackarevich; +1 Ответить
22. artbear 1159 09.01.18 13:22 Сейчас в теме
(20) для УПП 1.Х ? нет, не проще :)
24. Gilev.Vyacheslav 1838 10.01.18 10:02 Сейчас в теме
23. artbear 1159 09.01.18 13:36 Сейчас в теме
(21) Зачем вставлена рекламная ссылка?
Добавь полезный комментарий - о чем, почему?
zarucheisky; kraynev-navi; +2 Ответить
25. kuzyara 813 10.01.18 10:12 Сейчас в теме
Это можно, но что за выпады и переход на личности?
(23)
Хорошая документация, реальные сценарии на типовой, готовые кейсы, 8.2, ОФ, неплохое дополнение к 1с:апк.
Легко ищется на трекерах.

Теперь разверните за полезность вашего первого комментария.
26. Makushimo 154 18.05.18 13:01 Сейчас в теме
Скажите, я к компу на котором 1С, подключаюсь через RDP, на нем монитора живого нет или выключен.
Sikuli тут бессильна?
27. kraynev-navi 425 20.05.18 20:00 Сейчас в теме
(26) Если подключаетесь по RDP, то монитор есть - ваш. Если прогонять через неизвестную заранее виртуалку, то можно подсмотреть результирующий отчет. Более подробно см. предпоследний параграф:
В моем случае slave-нода запускается с экранным разрешением 1024х768. Запуск осуществляется под пользователем, для которого настроен автологин. И это следует учесть при создании Sikuli-сценариев. Возможно, есть более удачный способ запуска. Как проверить разрешение – в отчете есть информация на эту тему:
28. Makushimo 154 21.05.18 11:23 Сейчас в теме
(27) Я подключаюсь по RDP настраиваю сценарий, вешаю его на автозапуск и забиваю болт.
Автозапуск прогоняет тест на сервере, где нет монитора и я в этот момент не смотрю на процесс через RDP.
Sikuli работает через скриншоты экрана. Так?
Значит если не с чего делать скриншоты, то и тест не пройдет. Верно?

И что такое slave-нода вообще ни разу не понятно.
30. kraynev-navi 425 21.05.18 15:17 Сейчас в теме
(28) "вешаю на автозапуск" - это в Планировщике указываете скрипт? От чьего имени? Любого вошедшего пользователя, вне зависимости от регистрации? Это наверняка, важно, но затрудняюсь ответить как надо сделать, ибо такой способ использования не пробовал. Возможно, вы правы, если пользователь не залогинился, монитора не будет, взаимодействовать не с чем.
Рабочий вариант со slave-нодой - запуск тестов на jenkins (https://jenkins.io/), настройка автологина под пользователем из под которого запускается агент jenkins
32. Makushimo 154 21.05.18 15:32 Сейчас в теме
(30)
Рабочий вариант со slave-нодой - запуск тестов на jenkins

В двух словах не вдаваясь в детали можно прояснить, что это значит? Запускается сеанс RDP под указанным пользователем, и так получаем как бы монитор? то есть сервер сам к себе под RDP подключается? и если нет монитора, то все равно заработает?
33. kraynev-navi 425 21.05.18 15:56 Сейчас в теме
(32)
Не так. и RDP не нужен и монитор тоже. Нужен пользователь с автовходом. Как-будто при старте винды сразу кто-то вошел и работает.
- создаем на виртуалке спецпользователя локального админа, выставляем ему AutoAdminLogon выставляем в 1. (подробнее, например, тут: https://support.microsoft.com/ru-ru/help/324737/how-to-turn-on-automatic-logon-in-windows, с картинками: https://interface31.ru/tech_it/2011/07/kak-vklyuchit-avtomaticheskiy-vhod-v-sistemu-dlya-windows-7-i-windows-server-2008.html)
- создается батник на ведомой машине, который запускает стандартный агент jenkins "java -jar slave.jar....",
- в планировщике делаем задачу на запуск этого батника из под спецпользователя
При включении/перезапуске виртуалки винда поняла, что пользователь уже "вошел". И взаимодействует с его рабочим столом.
Пока писал нашел вот такой ссыль: http://qaru.site/questions/225464/how-to-run-gui-tests-on-a-jenkins-windows-slave-without-remote-desktop-connection
35. Makushimo 154 22.05.18 17:59 Сейчас в теме
(33) фигасе !
Спасибо. Покурю эти ссылки и что нибудь про jenkins.
29. Makushimo 154 21.05.18 14:02 Сейчас в теме
Вот вы пишете: "Как человек, написавший не одно приложение на AutoIt.."
А можете помочь со скриптом, который нажимает кнопку "ОК" в форме договора?
утилита AutoIt Window info форму договора не воспринимает как окно, а кнопку "ОК" вообще не выделяет. выделяет только командную панель формы.

То есть написать скрипт нажимающий "ОК" на форме написать вообще не реально?
31. kraynev-navi 425 21.05.18 15:23 Сейчас в теме
(29) 1С с AutoIt это еще та связка. Вы правы, там отдельного окна как бы нет. Со скриптом, увы, не помогу. В качестве идеи - можно попробовать "послать" туда хоткей ctrl+enter, если ОК дефолтная кнопка.
34. kraynev-navi 425 21.05.18 16:47 Сейчас в теме
(29)
То есть написать скрипт нажимающий "ОК" на форме написать вообще не реально?

Делал в основном приложения, связанные с браузерами, вебом. Связку 1С и AutoIt никогда не использовал для анализа форм, поэтому сказать "точно нет" или "точно да" не могу.
36. Makushimo 154 23.05.18 13:40 Сейчас в теме
Подскажите, пожалуйста такой вопрос.

Можно ли из 1С одновременно запустить два процесса Sikuli ?

Я пытаюсь решить такую задачу:
Скрипт1 Sikuli нажимает кнопку, 1С выкидывает исключение
Скрипт2 Sikuli выполняется в цикле и он нажимает кнопку закрытия окна исключения платформы.

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

Эта идея работает если фоновый скрипт запущен один, а основное действие с формой делаю программно из 1С (например, открыть форму)

Но когда два скрипта, то такое ощущение что Скрипт 2 фоном запускается, затем Скрипт1 как бы выбивает его, т.е процесс Sikuli переключается на него, а фоновое выполнение непонятно куда девается.
37. kraynev-navi 425 25.05.18 15:48 Сейчас в теме
(36) Не очень понял, что за чем, если честно.
Идея с циклическим запуском и двумя скриптами, имхо, не правильная.
Может так: в начале работы 1С запускает сикули-скрипт, который реализует оба функционала - нажатие кнопки и закрытие окна исключения, после отработки 1С. Просто предусмотреть условие, по которому сикули завершит выполнение (+ аварийный выход по таймауту).
38. Makushimo 154 28.05.18 12:58 Сейчас в теме
(37)
ну в итоге я так и сделал.
39. Makushimo 154 28.05.18 13:21 Сейчас в теме
Скажите, а можно ли в отчет Allure подсунуть скриншот ошибки, которая появилась в процессе выполнения теста?

Допустим скриншот как-то уже есть.
40. kraynev-navi 425 28.05.18 13:49 Сейчас в теме
(39) Наверняка можно. Но не пробовал. Если через xunit, то залезть в функционал создания аллюра и посмотреть куда можно допилить вставку скриншотов. Посмотреть можно, например, в VB
Оставьте свое сообщение

См. также

Альтернативный способ добавления элементов и реквизитов на формы 32

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 ERP2 УТ11 Россия Абонемент ($m) Работа с интерфейсом

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

1 стартмани

09.09.2019    3281    5    bmk74    0       

Модель объекта 7

Инструменты и обработки Программист Конфигурация (md, cf) v8 Абонемент ($m) Инструментарий разработчика

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    3429    1    vadim1980    0       

Универсальный HTTP-сервис на платформе 1С, аля HTTP-сервер с примером 193

Инструменты и обработки Программист Подсистема v8 1cv8.cf Абонемент ($m) Инструментарий разработчика

Практический кейс построения HTTP-сервиса, который работает по принципу HTTP-сервера, с разбором всех методов построения и разработки класса задач построения личных кабинетов и сопряжения их с центральной базой.

1 стартмани

13.05.2019    17076    93    Diversus    38       

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 532

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

1 стартмани

31.01.2019    27987    264    bonv    109       

Редактор объектов информационной базы 8.3 40

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРОбъектУпр) для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.31 от 02.10.2019

2 стартмани

23.01.2019    10308    143    ROL32    24       

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019) 174

Инструменты и обработки Программист Архив с данными v8 v8::Mobile БУ УУ Android Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Абонемент ($m) Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    22632    223    informa1555    172       

Шпаргалка разработчика для работы с формами 23

Отчеты и формы Программист Архив с данными v8 Россия Абонемент ($m) Работа с интерфейсом

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

3 стартмани

31.10.2018    8677    68    ELAM    3       

Навигатор по конфигурации базы 1С 8.3 106

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРНавигаторУпр) для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Небольшой набор сервисных функций для повседневной работы. Для программистов и пользователей. Платформа 8.3, управляемые формы. Версия 1.1.0.45 от 08.11.2019

3 стартмани

28.10.2018    16818    196    ROL32    47       

Открывашка ячеек таблиц 85

Инструменты и обработки Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм

1 стартмани

27.10.2018    9956    11    tormozit    28       

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции 65

Инструменты и обработки Программист Бизнес-аналитик Приложение (apk) v8 Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    15977    23    informa1555    26       

Визуализация событий на временной шкале средствами "Поле HTML документа" 186

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

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

1 стартмани

31.07.2018    14835    129    Plotks2017    24       

Работа с данными выбора 40

Инструменты и обработки Программист Архив с данными v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

17.07.2018    22114    13    kalyaka    15       

CI/CD для 1С - миф или реальность? 78

Статья Программист Нет файла v8 Бесплатно (free) Управление проектом

Разберём плюсы и минусы применения практик CI/CD с учетом ограничения технологической платформы 1С:Предприятие.

02.07.2018    17706    comol    54       

Консоль HTTP-запросов с генерацией кода 165

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Консоль запросов

Консоль HTTP-запросов, которая не только выполняет запросы и получает результат их выполнения, но и генерирует необходимый код. Использую на 8.3.11.2899.

1 стартмани

25.05.2018    15590    219    leongl    15       

Работа со схемой запроса 176

Статья Программист Конфигурация (md, cf) v8 v8::Запросы Абонемент ($m) Инструментарий разработчика Практика программирования

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

1 стартмани

24.04.2018    28819    74    kalyaka    34       

Регистры правил [Расширение] 14

Инструменты и обработки Системный администратор Программист Расширение (cfe) v8 v8::Права УТ11 Абонемент ($m) Инструментарий разработчика Информационная безопасность

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    11116    28    33lab    0       

Программное формирование форматированной строки в стиле html+inline CSS 53

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом Инструментарий разработчика

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    20186    25    bonv    6       

Трансформатор 1С - SQL 235

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика

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

1 стартмани

28.06.2017    27724    321    Synoecium    47       

Расширенная настройка динамического списка УФ 114

Инструменты и обработки Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Работа с интерфейсом

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

1 стартмани

31.05.2017    24958    144    tormozit    23       

Набор подсистем "Умные таблицы" 64

Инструменты и обработки Системный администратор Программист Архив с данными v8 Беларусь Россия Казахстан Абонемент ($m) Инструментарий разработчика

Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.

1 стартмани

22.05.2017    24275    99    Silenser    33       

Регулярные выражения – это просто. Построитель и отладчик регулярных выражений 181

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Абонемент ($m) Инструментарий разработчика Практика программирования

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

1 стартмани

13.03.2017    23158    112    romasna    47       

Сценарное тестирование в помощь программисту 1С 186

Инструменты и обработки Программист Конфигурация (md, cf) v8 Абонемент ($m) Инструментарий разработчика

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

1 стартмани

11.11.2016    22796    63    grumagargler    47       

Несколько шаблонов для доработки типовых конфигураций 174

Инструменты и обработки Программист Конфигурация (md, cf) v8 v8::УФ Абонемент ($m) Практика программирования Инструментарий разработчика

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

1 стартмани

03.10.2016    28511    102    json    25       

Управление задачами: Канбан доска 244

Инструменты и обработки Программист Архив с данными v8 Windows Абонемент ($m) Инструментарий разработчика БСП (Библиотека стандартных подсистем)

Конфигурация "Управление задачами" с использованием БСП. Канбан доска. Открытый код.Загрузка изменений из хранилища конфигураций 1С и связь с задачами. Проект выложен на github (ссылка в публикации). Управляемые формы. Рассылка уведомлений.

1 стартмани

02.10.2016    49460    474    BlizD    286       

Обновление доработанной Бухгалтерии предприятия. Как проверить и убедиться, что все сделано хорошо? 89

Статья Системный администратор Программист Бухгалтер Нет файла v8 БП2.0 Бесплатно (free) Практика программирования

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

05.09.2016    25158    kraynev-navi    33       

Конструктор-тестер http запросов в 1С 215

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Абонемент ($m) WEB Инструментарий разработчика

Данная обработка позволяет в несколько кликов конструировать http запросы на языке 1С и просматривать результаты их выполнения.

3 стартмани

19.08.2016    34498    299    hlopik    16       

Hello world на metadata.js 249

Статья Программист Архив с данными v8 1cv8.cf Абонемент ($m) Инструментарий разработчика WEB Мобильная разработка

Про браузерные offline-first приложения можно написать миллионы слов. Сэкономлю своё и ваше время и перейду сразу к делу. В статье не будет рекламы и агитации за новые технологии, не будет критики традиционных или попсовых решений. Рассмотрим по шагам разработку простейшей программы на metadata.js. Постараюсь сделать акцент не на том «как это сделано», а «почему сделано именно так»

1 стартмани

11.08.2016    48778    115    unpete    205       

Подсистема обмена данными с порталом ИМНС по электронным счетам-фактурам (автоматический обмен) 8

Инструменты и обработки Системный администратор Программист Бухгалтер Конфигурация (md, cf) v8 1cv8.cf Беларусь БУ НДС Абонемент ($m) Внешние источники данных WEB Инструментарий разработчика

Подсистема включает документы и обработки для автоматического обмена данными с порталом ИМНС через web-сервис. Присутствует возможность заполнения данными типовых операций за период, учёта входящих документов, учёта произвольных исходящих документов. Приложены обработки для запуска задания планировщика на автоматический обмен данными.

1 стартмани

28.07.2016    26371    28    c1nil    4       

Навигатор по структуре и данным баз 1С 8 28

Инструменты и обработки Системный администратор Программист Архив с данными v8 v8::УФ 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика

Просмотр структуры и данных информационных баз 1С:Предприятие 8.2, 8.3. Состав, типы объектов, табличных частей, движений. Размер, структура хранения объекта. Для администраторов и разработчиков. Версия 1 - на обычных формах, версия 2 - на управляемых.

1 стартмани

11.07.2016    23471    130    o.nikolaev    17       

БСП 2.3 и БСП 3.0: Просто про выполнение внешней обработки в фоне (c индикацией прогресса выполнения) 187

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Практика программирования БСП (Библиотека стандартных подсистем)

Простое пояснение о том, как сделать внешнюю обработку с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП 2.3.2. UPDATE 20/09/19: добавлен вариант обработки с индикацией процента выполнения и статусом выполнения для БСП 3.0.

1 стартмани

18.05.2016    47271    140    rozer    52       

Консоль запросов "Запросник" для управляемых форм с подсветкой синтаксиса 35

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Консоль запросов

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

1 стартмани

19.04.2016    31473    263    1С_Мастер    42       

Шильдик. Изменение заголовка конфигуратора 1С и выделение цветом конфигураторов разных баз 24

Инструменты и обработки Системный администратор Программист Приложение (exe) v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

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

1 стартмани

02.03.2016    13145    47    kraynev-navi    30       

Простые радости жизни программиста 1С: выбор типа значения 51

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

17.02.2016    39700    45    yuraos    17       

Яндекс.Деньги "Благотворительность" 17

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Яндекс.Деньги теперь в 1С. Форма для приема благотворительных взносов. Форму легко сделать и вставить на любую страницу сайта или блога. Платежи будут приходить на ваш кошелек. На форме есть три способа платежа: из кошелька, с банковской карты, с баланса мобильного.

1 стартмани

16.02.2016    18030    9    Tatitutu    5       

xUnitFor1C - набор инструментов для выполнения тестирования (модульного/юнит, приемочного, сценарного для 1С 8.3, интеграционного) в 1С:Предприятии 8 178

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Инструментарий разработчика

xUnitFor1C - простой и мощный фреймворк для тестирования в 1С. Позволяет тестировать в разных режимах обычное приложение, тонкий и толстый клиент управляемого приложения. Поддерживаются любые платформы 1С - от 8.2.17 до 8.3.5 и выше. Любые наборы тестов могут прогоняться в полностью автоматическом режиме. Автозапуск используется в различных build-серверах в системах Continuous Integration. Также возможно очень простое создание тестовых данных на основании табличных макетов. Эти макеты можно генерировать из реальных боевых данных. Полученные данные в тестах загружаются одной строкой кода. В статье я кратко описал историю продукта + вставил небольшое описание различных возможностей нашего фреймворка + список полезных статей/примеров/видео, обучающих/рассказывающих о практическом применении инструмента

13.11.2015    38026    artbear    45       

Интерфейс сопоставления объектов для обмена (для типового регистра СоответствиеОбъектовДляОбмена) 22

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 КА1 БП2.0 ЗУП2.5 УТ10 УПП1 Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки Перенос данных из 1C8 в 1C8

Вы внедряете обмен данными между двумя типовыми или основанными на типовых БД и вам необходим инструмент, чтобы сопоставить между собой справочники этих конфигураций? Вы хотите навести порядок в обмене данными, потому что вам надоело вылавливать дублирующиеся объекты? Вам очень хочется перепоручить сопоставление объектов обменивающихся баз пользователям, но нет подходящего и понятного пользователям интерфейса? Тогда вам нужна именно эта обработка!

4 стартмани

11.11.2015    30422    221    catsam    8       

Exec - Выполнение кода, консоль запросов и не только! 70

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Консоль запросов

Незаменимый инструмент администратора БД и программиста: Выполняйте произвольный код из режима 1С Предприятие; сохраняйте/загружайте часто используемые скрипты; выполняйте запросы с замером производительности запроса в целом и каждой из временных таблиц в частности, а также с просмотром содержимого временных таблиц; произвольным образом изменяйте любые объекты БД, редактируя даже не вынесенные на формы реквизиты и записывая изменения в режиме "ОбменДанными.Загрузка = Истина"; легко узнавайте ИД объектов БД; выполняйте прямые запросы к SQL с замером производительности и не только!

5 стартмани

10.11.2015    36347    173    catsam    11       

Работа с push сервисами только средствами 1С 8.2 24

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 Windows Абонемент ($m) Сервисные утилиты Инструментарий разработчика Универсальные обработки

Обработка для настройки, тестирования и использования с предустановками для 3-х сервисов. Текст модуля для внедрения в конфигурацию или другие обработки. Уведомления на телефон, компьютер, браузер.

1 стартмани

18.08.2015    24353    45    anig99    1       

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении 59

Инструменты и обработки Системный администратор Программист Расширение (cfe) v8 1cv8.cf Россия БУ Windows Учет ТМЦ Абонемент ($m) Универсальные функции Инструментарий разработчика

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

1 стартмани

17.08.2015    39393    169    ekaruk    31       

Универсальная учетная система с конструктором документов и справочников в режиме 1С: Предприятие 95

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf УУ Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Заголовок статьи звучит фантастично, но это не шутка. Занимаясь внедрениями, я часто сталкивался с ситуацией, когда надо было к типовой конфе приделать простенький модуль учета чего-нибудь, не специфичного для самой конфы. Например в УТ учет материалов в эксплуатации. Модуль обычно состоял из пары справочников (2-3), 3-х документов и регистра или пары регистров. Однажды подобные пристройки понадобились одновременно на 3 проектах. Скучно делать одинаковую работу, и я подумал, а что, если сделать универсальный инструмент, в котором пользователь сам сможет нарисовать себе справочники, реквизиты к ним, документы и движения. Т.е. конструктор полноценных документов в пользовательском режиме. Это оказалось не так сложно - все дело в подходящей архитектуре данных.

1 стартмани

29.07.2015    26495    141    informa1555    39       

NativeDraw: Компонента рисования для 1С [V2.6.2] 106

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v8 1cv8.cf Windows Абонемент ($m) Разработка внешних компонент Работа с интерфейсом

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

1 стартмани

13.07.2015    40292    421    ПерваяСистема    140       

Конвертация данных. Найдется все! И еще немного... 26

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 КД Абонемент ($m) Поиск данных Инструментарий разработчика

Каждый разработчик, применяющий конфигурацию «1С:Конвертация данных», когда-нибудь обязательно сталкивается с проблемой поиска данных в правилах обмена и (или) регистрации данных.

2 стартмани

25.06.2015    23528    40    tomvlad    7       

Кнопки управления группировками табличного документа для управляемых форм 23

Инструменты и обработки Программист Внешний отчет (ert,erf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

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

1 стартмани

02.06.2015    22356    31    unichkin    9       

Мастерская запросов 16

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Инструментарий разработчика

Данный инструмент предназначен для разработчиков на платформе "1С:Предприятие 8" и позволяет в пользовательском режиме разрабатывать и тестировать запросы и схемы компоновки данных. Основная цель создания инструмента - максимальное удобство в работе при использовании конфигураций на управляемых формах. Текущая версия 1.0.8 от 19.09.2016 г. Тестирование выполнялось на платформе версии 8.3.8. Работа на более ранних версиях не гарантируется.

1 стартмани

01.06.2015    12581    95    Saint    28       

Microsoft Power BI + 1С. Зачем и как? 166

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Абонемент ($m) Инструментарий разработчика

Я думаю, что все руководители хотят смотреть и играть в красивые графики. В живые такие графики, чтобы прыгало, скакало, выделялось, было интерактивным и т.д. Не знаю почему, но вот как только человека повышают до любой руководящей должности - у него сразу везде должны быть графики. Или это дань моде, или это просто "прикольно". Не мне судить. А вот как удовлетворить такой запрос клиента, причем малой кровью - об этом мы и поговорим.

1 стартмани

25.05.2015    53092    23    DitriX    69       

История изменений объектов информационной базы во внешнем хранилище ElasticSearch 137

Инструменты и обработки Системный администратор Программист Подсистема v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Администрирование данных 1С

ElasticSearch - это opensource решение для очень быстрого поиска данных в больших массивах информации. Как один из примеров эффективного решения технологической задачи для 1С - использовать ElasticSearch для хранения истории изменений объектов информационной базы.

1 стартмани

25.03.2015    36517    129    Aleksey.Bochkov    34       

Направляем список пользователей, не закрывающих терминальные сессии 1С, на почту ИТ директору 39

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Windows Абонемент ($m) Сервисные утилиты Инструментарий разработчика Email

Пятница - лучший день для аншлагов по 1С. У Лены он начался с того, что у одного нашего московского клиента рухнула база по банальной причине ...

1 стартмани

16.03.2015    26703    23    O-Planet    42       

Подсистема "Планировщик" (версия 1.1) 138

Отчеты и формы no Конфигурация (md, cf) v8 1cv8.cf Россия Абонемент ($m) Практика программирования WEB Работа с интерфейсом

Конфигурация с подсистемой "Планировщик" (календарь). Бесплатная открытая версия для свободного использования не включает двустороннюю интеграцию с сервисом Google и Outlook.com.

5 стартмани

02.03.2015    57108    463    vandalsvq    62       

График 3D 6

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика

Новый релиз программы График 3d. Ещё больше возможностей! График, который можно поворачивать! Каждую позицию можно рассмотреть подробно в реальном времени. И всё это можно запускать из 1С!

3 стартмани

29.01.2015    9304    16    dinopopyys    7       

Консоль запросов для тонкого клиента с просмотром временных таблиц и импортом запросов из конфигуратора 8

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Консоль запросов

Теперь можно в табло посмотреть произвольные ВТ, сделанные в других запросах и переданные через МенеджерВременныхТаблиц. И также посмотреть их в пользовательском режиме.

1 стартмани

28.11.2014    10241    36    Boris-Leleko    3