Как быстро развернуть автоматическую линию проверки своего решения на 1С, затратив 8 часов и получив выигрыш в 1 человеко/месяц

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

Администрирование - Администрирование данных 1С - Тестирование и исправление

У разработчиков 1С уже есть все инструменты, позволяющие использовать современные инженерные практики в 1С. О том, как за 8 часов внедрить автоматические проверки для решений на 1С, снизить в них количество глупых ошибок, а также высвободить ресурсы на более интеллектуальную работу на INFOSTART MEETUP Ekaterinburg.Online рассказал Артур Аюханов.

Я расскажу о том, как запустить тестирование, и покажу, что это несложно.

 

 

Начну с проблематики – какие есть потребности у разработчиков, у команды 1С, у компании?

  • Хочется запустить автоматические проверки – где-то слышали про них, читали, хайп давно идет.

  • Хочется внедрить автотесты, статический анализ кода, применить код-ревью. Ничего этого пока нет, а хочется, чтобы все это заработало.

  • Также есть желание уменьшить количество ручных операций, чтобы программисты делали более интеллектуальную работу, потому что программисты дорогие.

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

  • И вообще ускорить бы выпуск решений/доработок – чтобы результат получался быстро.

 

 

Есть проблемы:

  • Кажется, что это сложно, что это магия.

  • Мы ничего об этом не знаем.

  • Время специалистов дорого. Во-первых, они многого не знают, во-вторых, если они будут учиться, то потратят много времени – все это деньги, затраты и т.д. Заказчик не хочет платить за все эти попытки без быстрой отдачи и т.д.

  • Информации много, но непонятно, с чего начать, у кого спросить.

  • Даже если мы начнем это делать – кто это будет сопровождать? Тот ли человек, который запускал, или какой-то другой?

Уйма вопросов.

 

Необходимые условия для фонового внедрения тестирования

 

 

На самом деле все очень просто.

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

Пусть команда 1С работает, как раньше:

  • если использовали хранилище – используют хранилище 1С;

  • работают с внешними файлами как угодно – через Git или не через Git – без разницы;

  • разработка ведется по текущим шаблонам – в конфигураторе создаете внешние обработки, печатные формы. Все, как обычно, ничего не меняется.

И где-то рядом проводится «фоновое» внедрение. Его проводит кто-то один. Ему выделяется отдельный сервер либо так называемый «сервер сборок под столом» – можно просто взять свою же машину. И на этой машине разворачиваются все необходимые инструменты.

 

 

В роли того, кто будет выполнять указанное внедрение, может выступать разработчик 1С или администратор. Этому человеку достаточно просто уметь работать с командной строкой Windows. Linux мы пока не используем, потому что это сложно – для этого нужны дополнительные знания, это не все умеют, это уже будет второй этап.

Какие инструменты нужны? Повторюсь, что здесь все достаточно штатно:

  • наш любимый конфигуратор платформы 1С:Предприятие;

  • инструменты от 1С – ras / rac / ring;

  • также можно использовать известные инструменты не из мира 1С – наверняка многие слышали про Allure, про Java и т.д.

 

 

Обязательно используем OneScript. Вы про него, наверняка, уже знаете, потому что с того момента, как мы в первый раз запускали первые скрипты на этом языке, прошло уже семь лет!

Для OneScript очень много готовых библиотек, практически все они развиваются как OpenSource-продукты – на слайде я привел несколько самых популярных.

Инструменты есть, они проверены – нужно только их запустить и настроить.

 

 

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

Если мы запускаем автоматическое тестирование в какой-то большой компании, нам обычно нужен:

  • Git-сервер – на слайде приведен список. Здесь самые разные серверы. И от Microsoft, и от GitLab, BitBucket, GitHub и т.д.

  • Сервер CI/CD – тоже любые серверы, я их специально перечислил.

  • Task-tracker – здесь может быть Jira, тот же GitLab и т.д.

  • В качестве сервера приложений – наш любимый 1С

  • И для удобного код-ревью тоже инструменты есть.

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

 

 

Внедрение выполняется одинаково, с едиными подходами.

Примеры из моего опыта:

  • запуск в большой компании из тройки федеральных сотовых операторов;

  • внедрение в небольших компаниях;

  • обучение запуска физлиц, которые посещают наши практикумы - разработчики\аналитика\тестировщики обучаются.

Первый этап практически всегда одинаковый.

  • Цель - быстро запуститься.

  • Берем свою машину или уже существующий сервер. Другое название такой машины – «ночной сервер сборок», когда весь набор инструментов автоматически запускается, например, ночью, или когда у вас машина свободна\простаивает, тот же пример с ночью.

 

 

Как запускаем:

  • Если в компании есть CI-сервер, его можно использовать, Например, запустить или переиспользовать выделенный сервер Jenkins, GitLab, Microsoft Azure DevOps и т.д. Идеально, если рядом есть специалисты, которые могут настроить этот сервер, могут помочь в настройке или выдать вам права на сервер для начала. Но помощь стороннего сотрудника может быть получена не сразу, что мешает быстрому запуску.

  • Самый легкий способ запуска заданий на первом этапе, если используется своя машина или выделенный сервер – это банальный планировщик Windows. На начальном этапе вам даже не нужны права администратора.

  • Просто используем штатную возможность Windows - запуск приложений из командной строки.

 

8 часов на внедрение автоматизированных проверок

 

 

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

  • Как всегда, нужен небольшой объем первичной подготовки ПО – 1 час.

  • Статический анализ кода – 0.5 час.

  • Дымовые тесты – 2.5 часа.

  • Потом делаем синхронизацию хранилища 1С с Git – 2.5 часа.

  • И настройку – 2 часа.

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

 

Статический анализ кода

 

 

С чего нужно начать?

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

  • базовая синтаксическая проверка конфигуратора;

  • и обязательно нужно использовать “расширенную” проверку.

Что такое расширенная проверка? Я проводил много обучений с компаниями, с физлицами, и выяснил, что не очень много коллег знает, что в 1С давненько уже есть так называемая “расширенная” проверка, которая позволяет проверить вызовы через точку. Например:

  • если есть обращение к объекту, и у него вызывается некий метод или идет обращение к его свойству.

  • 1С может проверить подобный вызов для простого объекта или общего модуля.

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

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

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

И срабатывает правило, известное многим - когда инструмент долго работает, его запускают редко. Если запускаем редко, польза от инструмента получается небольшая. А для увеличения пользы нужно запускать чаще.

 

 

Чтобы запускать чаще, используем:

  • инструмент Vanessa-runner. В нем есть специальная команда syntax-check, которая выполняет проверку из конфигуратора с помощью пакетного запуска конфигуратора. Абсолютно штатно – все через 1С.

  • Далее результаты проверки можно посмотреть через инструмент Allure. Инструмент достаточно известен. Ребята, которые его придумали, ранее работали в Яндексе, но сейчас это отдельная команда.

 

 

Итак, из командной строки запускаем команду

vrunner syntax-check

На слайде показан результат выполнения. Проверка выдала, что в режиме веб-клиента при выполнении кода возникает ошибка. Это очень простое и понятное замечание – мы сразу понимаем, что это за ошибка, и можем передать ее на исправление другому разработчику или самостоятельно исправить.

Повторюсь про внедрение в фоновом режиме. Мы запускаем проверку на отдельной машине и затем изучаем результаты.

 

 

На текущем слайде показано, как синтаксическая проверка работает уже на настоящем сервере CI/CD - на примере выделенного Microsoft TFS у одного из клиентов.

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

 

Дымовые тесты

 

 

Следующее, что нужно сделать – запустить так называемые “дымовые” тесты.

Дымовые тесты проверяют рутинные операции 1С:

  • Открытие, закрытие форм.

  • Перезапись элементов, создание документов, перезапись существующего документа.

  • Командный интерфейс и т.д.

  • Есть тесты ввода на основании документов, элементов справочников.

  • Есть проверка схем СКД – если у нас есть какие-то отчеты, в них есть свои схемы СКД, мы можем сразу проверить – валидные ли запросы в этой схеме, вообще схема валидна? Может быть, в схеме используются устаревшие метаданные или есть реквизит метаданного, которого был удален или переименован.

    • Для поиска указанных проблем была написана простая проверка, которая перебирает все метаданные, находит у них все макеты с типом «Схема компоновки данных» и пытается скомпилировать эту схему СКД. Если неудача при компиляции, тогда выдается ошибка с текстом, который возвращает 1С.

  • Есть тесты печатных форм.

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

Буквально вчера (“вчера” от даты выступления в 2020г.) я случайно узнал, как дымовые тесты проверки командного интерфейса из Vanessa-ADD доработала команда УНФ из фирмы «1С». Коллеги сделали прикольную вещь – открывается форма списка и выполняется перезапись двух элементов из списка. Сначала в форме списка (например, справочника или документа) открывается первый элемент и записывается, а потом идет переход к последнему элементу и тоже перезаписывается. Получилась полезная проверка.

 

 

Для запуска дымовых тестов помимо конфигуратора 1С нужны инструменты:

  • Vanessa-ADD;

  • Vanessa-runner, который позволяет запускать тесты из командной строки

  • И Allure, который показывает результат.

Команда запуска:

vrunner xunit

На слайде показан пример запуска. Видно много текста\действий – сначала получаются результаты тестирования, выводится ошибка – красным выделено, что часть тестов упала. Дальше приведена команда allure для формирования отчета тестирования.

 

 

На слайде показан пример типового отчета Allure по запуску дымовых тестов на БСП.

Как видно, выполнено достаточно много тестов – 1200. Видны результаты тестов, количество и процентовка ошибок.

При необходимости можно расшифровать результаты, детально посмотреть, какие конкретно тесты упали. И принять управленческие решения – отдать разработчикам, показать им, что не работает, добавить исключения и т.д.

 

 

На слайде еще пример на более серьезной системе – это самописная конфигурация на базе ERP или Управление Холдингом, точно уже не помню.

На слайде видно, что фактически только на дымовых тестах было получено где-то 7.5 тысяч тестов.

Почему здесь так много красных? В конфигурации было нестандартное модальное окно, которое вылезло где-то в середине дымовых тестов, дымовые тесты его закрыть не смогли, потому что не поняли, что это модальное окно. Следовательно, все остальные формы попали в ошибки.

 

 

На этом слайде показан пример вывода результатов дымовых тестов на CI-сервере Microsoft TFS, аналогичный представленному ранее.

  • Слева – набор шагов, который нужно сделать.

  • Справа – это результат тестирования.

В данном случае сработало всего сто девяносто три теста, и один тест упал – искусственно было добавлено исключение для примера.

 

Версионный контроль Git

 

 

После того, как мы запустили дымовые тесты и синтаксический контроль, наступает время следующего важного этапа – нужно использовать версионный контроль.

  • Все знают про хранилище 1С. Все знают, что оно не очень удобное, не очень быстрое и т.д.

  • Наверное, уже многие знают, что есть система версионного контроля Git.

  • И есть инструмент, который позволяет переносить историю хранилища 1С в Git-репозиторий (в систему Git) – это GitSync.

  • После того, как мы перенесем нашу историю хранилища вместе со всеми авторами, комментариями, метками, датами и так далее, нам станет доступна вся магия Git. Мы сможем видеть, кто какой участок кода менял.

  • Сможем интегрировать наше хранилище и трекер задач (ту же Jira, Битрикс, GitLab и т.д.).

    • Важно ввести в привычку себе и своим коллегам в команде, что нужно указывать номера задач в формате #НомерЗадачи. В Jira обычно формат #НомерПроекта-НомерЗадачи. На GitLab и GitHub – строка #НомерЗадачи. Когда мы помещаем изменения в хранилище 1С, мы пишем текст, потом на новой строке или в этой же строке #НомерЗадачи.

Интеграция с этими системами появится после того, как GitSync сделает синхронизацию по команде.

gitsync sync

Это односторонняя синхронизация из хранилища 1С в репозиторий Git. Она именно односторонняя, потому что переносить изменения в хранилище 1С не имеет смысла. Напомню - у нас команда работает, как обычно, источником изменений является хранилище 1С, а Git является получателем.

После того, как мы выложили свой код в Git , начинает работать остальная магия – можно запускать всякие CI/CD сервера непрерывной интеграции, можно запускать статический анализ кода – SonarQube и т.д. Дальше появляется очень много возможностей для улучшения - становятся доступными инструменты код-ревью и другие механизмы, основанные на доступных исходниках в Git.

Фирма «1С» придумала свой инструмент GitConverter для синхронизаци хранилища и Git. Инструмент работает исключительно с 1С и внутри 1С. А GitSync работает как инструмент командной строки. Оба подхода имеют право на жизнь, но мне больше нравится GitSync. Я активно участвовал в его доработке, сейчас уже выпущено третье поколение, инструмент активно развивается.

 

 

На слайде приведен пример той самой магии – связь задач с исходниками в коде.

 

 

Мы можем посмотреть код – что менялось. Например, красным цветом отмечено, что при изменении удалена строка кода, а добавлены зеленые строки.

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

 

Чек-лист выполнения

 

 

Давайте закрепим, что нужно:

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

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

  • Дымовые тесты мы запускаем командой vrunner xunit.

  • Синхронизацию хранилища 1С и Git мы делаем через команду gitsync sync (для версии 3.0) или команды gitsync export (для версии 2.0).

  • Если у вас нет сервера CI, выполнение по расписанию можно просто настроить через планировщик Windows. Если сервер есть, на сервере CI можно настроить расписание или триггер запуска – повторюсь в очередной раз, что нам нужен запуск из командной строки указанных ранее команд.

Если вместе сложить время этих действий, суммарно займем примерно 8 часов. Это настоящие цифры, на своих практикумах я коллегам как раз и показываю, что все реально – мы на занятиях полностью в это время укладываемся. Единственное, на практикумах мы не делаем синхронизацию хранилища, а сразу же учимся еще и BDD.

 

Результаты

 

 

Результаты есть всегда. Даже если мы запускаем только синтаксический анализ или только дымовые тесты – всегда находятся ошибки. Для меня это уже аксиома - При первом запуске любых новых инструментов ошибки находятся всегда.

Запустили дымовые – на слайде показан пример, что почти восемь тысяч тестов, из них, как видите, много упавших. Данные из реального боевого проекта.

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

 

 

Перейду к результатам – это реальные цифры одной федеральной компании. У коллег использовалась доработанная УТ 11, и после запуска они посчитали, сколько времени тестирования удалось сэкономить при запуске дымовых тестов.

  • Всего 1787 простых дымовых тестов.

  • Примерно посчитали, что по четыре проверки на каждый справочник/документ.

  • Прикинули, что в идеальном случае каждая проверка делается вручную за одну минуту.

  • Простая математика – если на ручное тестирование в команде разработки выделен специальный человек, который делает это раз в две недели, минимальные затраты на ручное тестирование – 60 часов.

 

 

Дальше – синтаксическая проверка.

  • Расширенная синтаксическая проверка на конфигурации УТ 11 выполняется примерно 20 минут.

  • В команде 15 человек и каждый член команды минимум раз в день что-то коммитит. Обычный разработчик должен хоть раз в день выдать какой-то результат в любом случае, иначе возникают вопросы, чем сотрудник занимался.

  • На каждый коммит желательно выполнять полный синтакс-контроль в виде расширенной проверки.

  • Опять же, простая математика – 15*20 = 300 минут, это 5 часов в день.

  • Получаем, что только на синтаксической проверке, при минимуме коммитов, для команды из 15 человек получалось бы 100 часов затрат времени в месяц.

 

 

Складываем оба полученных числа, получаем 160 часов.

Вывод - когда мы автоматизировали перечисленные ранее проверки, мы сэкономили 160 часов – целый человеко-месяц. Только за счет того, что запустили простейшие операции – дымовые тесты и синтаксическую проверку.

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

В итоге время тестировщиков удалось освободить для переключения с рутинной проверки. Коллеги смогли более серьезно проверять свою систему и выполнять более интеллектуальную работу.

 

Удалось ли решить проблемы?

 

 

Помните, с чего все начиналось? Очень сложно, магия, не понятно – где, что, как…

 

 

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

  • Инструменты все известны, список есть, и они давно уже используются.

  • По времени также все очевидно – затраты небольшие, получена экономия. Цифры вы сами видели.

  • С чего начать – ответ элементарен. Чек-листы есть, инструменты есть. Конечно, это OpenSource-инструменты, поэтому там с документацией не всегда хорошо. Но документация меняется, дорабатывается, инструменты дополняются – появляются новые тесты, например, и так далее.

  • Можно спросить, найти того, кто поможет и будет сопровождать – все в наличии. Есть Инфостарт, Telegram, GitHub, где вопросы использования активно обсуждаются.

  • В конце концов, всегда остается вариант пройти какое-то платное обучение, те же практикумы, которые сейчас проводятся, платные внедрения и т.д.

 

Что дальше

 

 

А дальше уже переход к следующей магии:

  • Нужно начинать использовать инструменты для проверки непосредственно на сервере CI/CD (сервер CI – это сервер непрерывной интеграции, а сервер CD – это сервер непрерывной доставки):

    • Vanessa-Runner – это все операции пакетного запуска из конфигуратора со всякими полезными возможностями.

    • Packman – это инструмент на OneScript, который позволяет создавать файл поставки.

  • Инструменты приемочного тестирования BDD – повторюсь про Vanessa-ADD на языке Gherkin или продукты-соседи (Vanessa Automation, Тестер). Недавно на одном из мастер-классов коллега предложил вариант Гренкин – мне нравится, я теперь частенько его употребляю.

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

  • Дальше – статический анализ кода, SonarQube, BSL Language Server, который проверяет наш код на правильность.

  • И есть Docker, параллельный запуск тестов, нагрузочное тестирование и т.д. и т.п.

 

Вопросы

 

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

Да, когда мы начинаем писать свои настоящие тесты – приемочные, интеграционные – проблема данных стоит очень остро. Самый простой путь, с чего лучше начать – берем некую эталонную базу. В качестве эталонной базы может выступать копия рабочей, но ее данные не должны меняться – мы копию берем один раз, и она должна быть долгоиграющей. Мы используем эту копию как эталонную. Мы не восстанавливаем эталонную базу из рабочей каждый день или с подобной частотой. Мы эталонную базу только выгружаем в тестовую базу и обновляем конфигурацию в этой ИБ. Крайне желательно, чтобы эталонная база не была такого же объема, как и рабочая. В рабочей базе могут быть терабайты данных, попробуйте у разработчика такое развернуть.Лучше всего очистить эталонную базу, убрать какие-то переполненные регистры, присоединенные файлы, убрать какие-то наборы документов, которые для тестов не нужны.

В эталонной базе должно остаться некое состояние – вся НСИ и документы прихода, расхода, какие-то регистры, остатки, итоги и т.д. Чтобы мы четко понимали, что эти данные в тестах всегда будут одинаковы, и тест сможет на них рассчитывать. Например, тест может номенклатуру не создавать, а четко знать, что эта номенклатура всегда есть. У нее всегда нужное исходное состояние, есть остатки по этой номенклатуре – можно ее продать, оприходовать и т.д. Это один из вариантов.

Еще можно добавлять данные через те самые макеты. В Vanessa-ADD есть инструмент – “Генератор макетов данных”, который был сделан специально для быстрого добавления данных в эталонную базу. Если мы встретили какой-то баг в рабочей базе, с помощью генератора данных мы быстро можем состояние данных для этого бага сериализовать в табличный документ. И потом восстановить на эталонной базе. И далее на этих же данных на своей базе проверить поведение, сделать тест и доработать код системы.

Я в своем опыте пробовал разворачивать тестирование. Я пошел по пути создания эталонной базы на основе макетов разработчиков. Но потом мне стало не хватать некоего инструмента для управления этими макетами. Никто не задумывался о создании такого инструмента?

Это сложная холиварная тема. Очень часто все-таки лучше взять эталонную базу. Всегда проще часть НСИ держать в ней, чем каждый раз заморачиваться с догрузкой данных. Можно сделать некий инструмент для управления, но зачем? Во-первых, у нас есть некий тест, который проверяет некий сценарий. Пусть этот тест будет самодостаточным. Надо четко понимать, что тесту нужны такие-то данные. Зачем знать или помнить, что какие-то другие тесты используют эти же данные? Пусть используют независимо друг от друга. Вопрос актуализации данных легко решается через штатные обработчики обновления – системные, БСП-шные. Когда мы переходим на новую версию своей системы, мы можем автоматически данные догрузить, обновить реквизиты, мигрировать и т.д.

Сколько времени уже развиваются дымовые тесты и в чем удобство их применения?

Вся сила дымовых тестов в том, что их не нужно писать. Эти тесты существуют. Вам, как разработчику, не нужно писать тесты. Берите готовые. Сегодня (на время выступления в 2020г.) мне один коллега сообщил, что у него в компании ребята были очень рады дымовым, потому что это сразу дает несколько тысяч готовых тестов «из коробки», они рады экономии времени и приносимой пользе. Тесты на открытие форм развиваются уже порядка пяти лет. Недавно появились тесты командного интерфейса. В прошлом году появились тесты проверки СКД.

Можно ли использовать дымовые тесты для обычных форм?

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

В чем еще сила дымовых тестов – они работают для любой конфигурации, т.е. универсальны. Тесты проверяют – если они могут работать в этой конфигурации, они показываются в списке тестов и начинают выполняться. Если не могут – их просто нет. Например, если у вас нет макетов СКД, у вас тесты проверки СКД просто не будут показаны и не выполнятся. Любой дымовой тест сначала проверяет валидность данных – например, дымовые тесты проверяют не все формы, а только те, для которых у пользователя есть право просмотра. Если права на просмотр у пользователя нет, тесты просто не будут эти формы открывать, или какие-то формы, которые не должны работать в интерактивном режиме, тоже будут пропущены.

Где взять дымовые тесты?

Все дымовые тесты находятся в каталоге tests продукта Vanessa-ADD.

Есть ли готовые тесты для 1С:ERP?

Да, у команды разработки 1С:ERP есть тесты, не все их тесты опубликованы. У коллег свои сценарии под собственные требования. Вся проблема тестов в том, что тесты, которые делает кто-то, те же самые дымовые тесты, подходят только под определенные сценарии. Например, под рутинные операции – открыл/закрыл форму. Если вы внутри заполняете какие-то поля, проводите как-то документ, формируете печатную форму, то есть добавляете собственную логику, вы должны самостоятельно написать некий приемочный тест, который должен знать, что на выходе, как ему проверить ту же самую печатную форму, какие поля в ней правильно заполнены, а какие неправильно.

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

Необязательно. Есть дымовые тесты, которые пытаются перезаписать элементы или создать какой-то новый элемент – тесты открытия формы и т.д. Если у вас по умолчанию в базе есть типовой справочник «Номенклатура» – нельзя создать пустой элемент справочника, 1С просто не даст записать. Если вы заполните только наименование, ваш тест упадет. Другие тесты также упадут, потому что не заполнены обязательные поля. Нужно либо исключить этот тест из работы, либо сделать так, чтобы эта формы элемента номенклатуры заполнялась определенными пред-заполненными полями. Это можно сделать через файл настройки. Два варианта – либо исключаем форму из тестирования, либо добавляем настройку, чтобы такие формы создавались.

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

Разработка дымовых тестов для своей конфигурации входит в 2.5 часа или это время только на то, чтобы инфраструктуру развернуть?

Конечно, разработка тестов в указанное время не входит, потому что дымовые тесты писать не нужно, они уже написаны и входят в поставку Vanessa-ADD.

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

При ответе на этот вопрос нужно идти от потребности. Бизнес хочет, чтобы система, за которую он заплатил команде разработки, работала. Как команда разработки достигнет указанной цели, бизнесу все равно. Бизнес в большинстве случаев не хочет дополнительно платить. А команда разработки может достичь качественный результат разными способами. Один из способов – использовать статический анализ кода. В EDT, в конфигураторе. Я ранее привел пример – синтаксическая проверка тоже часть таких ошибок ловит. В EDT будет чуть лучше ловить, но без гарантии, потому что в EDT разработчик может убрать эту галочку – эта расширенная проверка в EDT также не особо быстро работает. И в итоге – проверка-то есть, но мы ей не пользуемся. И нужно каким-то образом закрыть потребность, чтобы проверка выполнялась. Для этого служит периодический запуск и расширенной проверки синтаксиса из конфигуратора, и автоматические тесты и статический анализ кода (через SonarQube, через EDT и т.д.) . Чем чаще мы ими пользуемся, тем меньше шансов у бага проскочить.

К сожалению, есть еще такая аксиома: «Никакие методики тестирования, статический анализ кода не найдут все ошибки». Об этом нужно просто помнить а начинающие коллеги частенько забывают. Вы можете сделать много действий, но ошибка все равно может проскочить. Ошибки могут появляться – это нормально. Но разработчик-профессионал обязан сделать так, чтобы после исправления баг никогда больше не появился.

 

*************

Данная статья написана по итогам доклада (видео), прочитанного на INFOSTART MEETUP Ekaterinburg.Online. Больше статей можно прочитать здесь.

Приглашаем всех принять участие в INFOSTART EVENT 2021 (6-8 мая, СПб).

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ArtiKDA 05.04.21 22:28 Сейчас в теме
Где можно найти, например описание команды syntax-check, запуская как у вас на скрине ругается на строку подключения, но у вас её же нет!
2. nixel 1020 06.04.21 00:17 Сейчас в теме
3. ardn 261 06.04.21 12:06 Сейчас в теме
(1)
syntax-check,


в ванессе используется подход, когда часто используемые параметры (например пути к базе, логин, пароль и тд) указываются в конфигурационном файле или вообще в переменных окружения, тут подробно описывается https://github.com/vanessa-opensource/vanessa-runner.
Это удобно - в основном мы же работаем с одной и той же базой.
4. Ambakollajder 09.04.21 07:53 Сейчас в теме
Решил пройтись по инструкции,
поставил oscript 1.5.0.178
запускаю opm install vanesa-runner
не может подключится, нужно настроить прокси, по документации создаю файлик opm.cfg
запускаю
{Модуль C:\Program Files\OneScript\lib\opm\src\cmd\Модули\ПараметрыПриложенияOp­m
.os / Ошибка в строке: 84 / Метод объекта не обнаружен (Свойство)}

решаю посмотреть через отладку, что там приходит, не нахожу информации как отлаживать onescript

файл конфига opm.cfg
{
"Прокси": {
"ИспользоватьПрокси": true,
"ПроксиПоУмолчанию": true,
"Сервер": "",
"Порт": "",
"Пользователь": "",
"Пароль": "",
"ИспользоватьАутентификациюОС": true
},
"СоздаватьShСкриптЗапуска": false
}
7. artbear 1307 09.04.21 11:27 Сейчас в теме
(4) после установки 1скрипта опм лучше всего обновить
opm install opm
8. Ambakollajder 09.04.21 12:02 Сейчас в теме
5. Ambakollajder 09.04.21 07:57 Сейчас в теме
Скачал отдельно файл vanessa-runner-1.10.0.ospx, куда его положить как запустить если не использовать opm?
6. artbear 1307 09.04.21 11:26 Сейчас в теме
(5) opm install -f нужныйФайл.ospx

без опм также можно, но костыльно, не советую.
9. Ambakollajder 09.04.21 13:08 Сейчас в теме
Имею тестовую базу, при расширенной проверке в конфигураторе 8,3,19,900
получаю предупреждение "Справочник.Контрагент.Форма.ФормаЭлемента.Форма Не обнаружено ссылок на процедуру: "ПриСозданииНаСервере2"

При проверке используя
C:\Program Files\OneScript\lib\vanessa-runner>vrunner syntax-check --settings to
ols/vrunner.json

получаю
ПРЕДУПРЕЖДЕНИЕ - Не установлен пакет Vanessa-ADD.
ВАЖНО - Команда тестирования xunit недоступна
Команда проверки поведения vanessa недоступна

Установите пакет, выполнив команду opm install add

vanessa-runner v1.10.0
ИНФОРМАЦИЯ - Начало проверки проекта
ИНФОРМАЦИЯ - Выполняю синтакс-контроль конфигурации
ИНФОРМАЦИЯ - Результат синтакс-контроля: Ошибок не обнаружено

ИНФОРМАЦИЯ - Проверка проекта завершена за 2с

В настройках ссылается на верную базу, потому что если у меня открыт конфигуратор этой базы vrunner ругается на блокировку ИБ.
10. artbear 1307 09.04.21 14:37 Сейчас в теме
(9) важно, какие настройки включены в Конфигураторе и какие в to
ols/vrunner.json

в Конфигураторе явно настроек больше, чем в файле
12. Ambakollajder 09.04.21 15:44 Сейчас в теме
(10) Да я их вообще не указывал, думал проверяет все. Методом тыка и help все же понял как загнать нужные свойства проверки. Опенсорс не дается так легко.
файл настроек в итоге получится таким, все заработало как надо
{
"default": {
"--ibconnection": '/FD:\1C\Базы\TestBase',
"--db-user": "Администратор",
"--db-pwd": "",
"--ordinaryapp": "0",
"--mode":["-ThinClient", "-WebClient", "-Server", "-ExternalConnection", "-ThickClientOrdinaryApplication", "-unreferenceProcedures"]
},
"vanessa": {
"--vanessasettings": "./tools/VBParams.json",
"--workspace": ".",
"--additional": "/DisplayAllFunctions /L ru"
}
}
13. artbear 1307 09.04.21 15:49 Сейчас в теме
(12)
"--workspace": ".",

этот параметр лучше сразу на верхний уровен положить, в default

а вот "--mode" выложить в отдельную настройку.

пример такой настройки есть в Ванесса-АДД https://github.com/vanessa-opensource/add/blob/develop/tools/JSON/vrunner.json#L16
11. artbear 1307 09.04.21 14:39 Сейчас в теме
(9) запусти команду vrunner help syntax-check

Тебе будет выдана подсказка по нужным ключам
14. triviumfan 24 12.04.21 20:50 Сейчас в теме
Подумал, что опять Овсянкин, а тут вон оно чего :)
Оставьте свое сообщение

См. также

Ускорение реструктуризации таблиц Промо

Инструментарий разработчика Администрирование данных 1С Тестирование и исправление Бесплатно (free)

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

12.09.2013    52628    OLEG4120    32    

Ошибка "Запрошенное имя верно, но данные запрошенного типа не найдены"

Тестирование и исправление v8 1cv8.cf Россия Бесплатно (free)

Приветствую, коллеги! В данной статье будет рассмотрена ошибка «Запрошенное имя верно, но данные запрошенного типа не найдены»: причины её возникновения и инструктаж по устранению неполадки.

23.04.2021    311    Koder_Line    0    

Ошибка в программе 1С: "Операция не может быть выполнена"

Тестирование и исправление v8 1cv8.cf Россия Бесплатно (free)

Доброго времени суток, коллеги! В данной статье будет рассмотрено несколько вариаций ошибки программы 1С «Операция не может быть выполнена…», причины возникновения, а также пути решения на примерах.

23.04.2021    633    Koder_Line    0    

Бухгалтерия 3.0 + Windows 10. Зависание при сохранении бухгалтерского баланса

Тестирование и исправление v8 БП3.0 Россия БУ Бесплатно (free)

Попался необычный глюк Бухгалтерии 3.0 на Windows10 - зависание при сохранении бухгалтерского баланса. Разобрался в причине, может, кому-то тоже пригодится.

01.04.2021    722    SnorkL1    4    

Восстановление работоспособности файловой базы. 3. Конфигурация Промо

Тестирование и исправление Практика программирования v8 1cv8.cf Бесплатно (free)

Восстановление работоспособности разрушенной файловой базы. Этап 3. Лечим конфигурацию.

21.04.2013    51471    andrewks    20    

Ошибка формата потока. ЗУП 3.1.16.77 и немного о себе

Тестирование и исправление v8 1cv8.cf Россия Бесплатно (free)

Решая задачу клиента по настройке синхронизации БП и ЗУП, столкнулся с "Ошибкой формата потока". В этой статье расскажу вам, как эту проблему удалось решить, и немного расскажу о себе.

31.03.2021    571    Dimario_puzo    7    

Ищем паттерны в сценарных тестах. Практика - Фреймворк Тестирование 3.0

Тестирование и исправление Сценарное тестирование Бесплатно (free)

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

29.03.2021    845    ivanov660    0    

Ошибка при открытии панели функций "Значение не является значением объектного типа (ЭтоГруппа)"

Тестирование и исправление v8::БУ БП2.0 Россия БУ Бесплатно (free)

При открытии панели функций в 1С: Бухгалтерии 2.0 возникает ошибка "Значение не является значением объектного тип (ЭтоГруппа)"

18.02.2021    373    delta    0    

Восстановление SQL базы 1С 8.2. рухнувшей во время сохранения конфигурации. Промо

Тестирование и исправление Архивирование (backup) v8 1cv8.cf Россия Бесплатно (free)

При обновлении конфигурации вылетела 1С. После чего наотрез отказалась входить в базу. При этом в конфигураторе выдавалось сообщение "Внимание!!! При обновлении данных, после последней реструктуризации, произошла критическая ошибка. Повторить обновление?" Потом выходило сообщение "Обнаружена незавершённая операция сохранения конфигурации. Для продолжения необходимо завершить операцию". Горела кнопка Ок - на этом работоспособность конфигуратора и базы заканчивалась.

08.02.2012    132576    VanDiesel1    139    

Причина появления и исправление ошибки SDBL "Таблица или поле Fld...... не содержится в резделе FROM"

Тестирование и исправление v8 Россия Бесплатно (free)

Данная ошибка возникает при любом действии из следующих: - изменении состава общего реквизита - переключении режима разделения данных в режим "Не использовать" у общего реквизита.

20.01.2021    971    smwed    2    

Пользователь ИБ не идентифицирован

Тестирование и исправление v8 ERP2 Россия Бесплатно (free)

Реанимация ИБ после такой ошибки

12.01.2021    19427    mrcamomile    82    

Как восстановить конфигурацию, если разрушены данные

Тестирование и исправление v8 Бесплатно (free)

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

23.10.2020    1925    aramius    4    

Ошибка формата потока данных, частный случай

Тестирование и исправление v8 Бесплатно (free)

Вариант решения ошибки формата потока данных при попытке открытия конфигурации в конфигураторе.

11.07.2020    3051    Zhilyakovdr    6    

Исправление ошибки SDBL: Тип поля * несовместим с типом поля *

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

После обновления конфигурации при записи одного документа стала появляться ошибка "Ошибки SDBL: Тип поля * несовместим с типом поля". В статье привожу пример исправления ошибки.

17.06.2020    4124    Farsis    2    

Восстановление данных 1С8 при помощи механизма РИБ

Распределенная БД (УРИБ, УРБД) Тестирование и исправление v8 Бесплатно (free)

Предлагаю сообществу способ восстановления утраченных данных из бэкапа используя механизм РИБ. Зачастую наличие бэкапа базы не позволяет просто взять и откатить состояние базы на утро или вечер предыдущего дня. Бывает так, что утерю важных данных заметили спустя 2 дня, и свежий бекап нам не поможет. Предлагаю относительно простой способ переноса определенных данных из резервной копии базы в рабочую. Не надо писать обработку по выгрузке, загрузке данных или по переносу через COM-соединение. Единственное условие: в базе должны работать обмены РИБ.

13.06.2020    1743    Vortigaunt    1    

Ошибка формата потока. Частный случай при обновлении

Тестирование и исправление v8 УПП1 Бесплатно (free)

При обновлении конфигурации столкнулся с ошибкой формата потока. Нашел вполне экономное решение по времени для решение этой проблемы.

25.04.2020    5063    Gasilin    8    

Проверка регистраторов при обновлении конфигурации

Тестирование и исправление v8 Бесплатно (free)

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

23.04.2020    3154    ipoloskov    10    

У Вас задваивание безналичных платежей в УТ 11.4, исправляем!!!

Тестирование и исправление v8 v8::ОУ УТ11 УУ Бесплатно (free)

Всем привет. Может такое произойти, что в окне безналичных платежей конфигурации УТ 11 происходит задвоение информации, т.е. от одного и того же контрагента пришли поступления одной и той же суммой в один и тот же день (дублирование). У меня данные из клиент-банка заливаются в БП, а затем через обмен выполняется перелив с БП в УТ, вот и получилось у меня задвоение. В журнале операций все прошло нормально, без задвоений, а вот в самой программе отобразилось уже так, произойти это могло по многим причинам (коряво прошел обмен, ошибка релиза, внутренние ошибки алгоритма и т.п. - вариантов масса). Что я сделал, в первую очередь, конечно, резервную копию.

16.04.2020    3364    VID1234    8    

Недопустимое состояние объекта !m_usingOldShema [backend - src\DBGenerationsImpl.cpp (2377)]

Тестирование и исправление v8 Бесплатно (free)

Не знаю, что именно вызвало такую ошибку, поэтому напишу, что выполнен был переход с платформы 8.3.10.2561 на 8.3.16.1148. Конфигурация разрабатывалась с использованием хранилища конфигурации. База серверная на Microsoft SQL. В результате изменений в конфигурации, не вызывающих реструктуризацию базы, после нажатия F7 возникло такое сообщение.

04.04.2020    10135    EvgeTrofi    8    

Ошибка Frontol 5, 6 при работе с базой (internal gds software consistency check)

Тестирование и исправление Розничная и сетевая торговля (FMCG) Бесплатно (free)

При продаже товара выскакивает критическая ошибка "Ошибка работы с базой! Internal gds software consistency check (can't continue after bugcheck)" и работа базы прекращается, любые повторные попытки войти в базу приводят к огромным количествам не понятных ошибок, сбоев, зависаний и вообще может выдать что база не обнаружена (перемещена или удалена). При попытка остановить/перезапустить службу Frontol она вообще зависала и помогала только перезагрузка терминала

23.01.2020    7982    ClickUp    2    

Зависает полнотекстовый поиск! Что было? Что я сделал?

Тестирование и исправление v8 БП3.0 Россия Бесплатно (free)

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

10.01.2020    7379    VID1234    14    

"Объект не найден" - не приговор! Простой способ восстановить удаленный объект

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

В статье будет рассмотрен простой способ восстановления удаленного объекта с помощью обработки «Выгрузка и загрузка данных XML».

12.11.2019    9211    Olesia_Matusevich    12    

Решение для клиент-серверной архитектуры на базе POSTGRE SQL при возникновении ошибки "Нарушена целостность структуры конфигурации"

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

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

07.11.2019    8342    leaguener    5    

Восстановление индексов СУБД

Тестирование и исправление v8 1cv8.cf Россия Бесплатно (free)

Восстановление индексов СУБД на основе структуры хранения базы данных 1С.

09.10.2019    6048    kadr    2    

Исправление ошибки "Для одного ссылочного кода существует более одной таблицы в базе данных"

Тестирование и исправление v8 Бесплатно (free)

Описана методика исправления ошибки путем внесения изменений в sql-таблицы.

23.09.2019    25435    Дмитрий74Чел    87    

О Unit-тестах замолвите слово.Часть 1

Тестирование и исправление Бесплатно (free)

Последнее время в контексте 1С очень много говорят о функциональном тестировании, BDD. А Unit-тестирование обходят стороной. Попробуем разобраться, для чего Unit-тестирование применять стоит.

22.07.2019    7901    Сурикат    27    

Ошибка формата потока и команды конфигурации

Тестирование и исправление v8 Бесплатно (free)

Один из вариантов устранения данной ошибки.

11.06.2019    9551    l_men    13    

Исправление ошибки при открытии внешнего отчета "Не удалось обновить вспомогательные данные расширений"

Тестирование и исправление v8 Россия Бесплатно (free)

Способы исправления ошибки при открытии внешнего отчета "Не удалось обновить вспомогательные данные расширений. Обратитесь к администратору."

30.05.2019    5998    AlkB    4    

MS SQL Ошибка СУБД: Предоставленный поток статистики разрушен. Как решить проблему с разрушенной статистикой

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

MS SQL Ошибка СУБД: Предоставленный поток статистики разрушен... Как решить проблему с разрушенной статистикой

16.04.2019    7428    ikorulev    1    

Cannot insert duplicate key. Кто виноват и что делать

Распределенная БД (УРИБ, УРБД) Тестирование и исправление v8 Бесплатно (free)

Ошибка "CANNOT INSERT DUPLICATE KEY" в базах 1С и связанная с ней "магия".

25.02.2019    24397    YPermitin    32    

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

Тестирование и исправление v8 Россия Бесплатно (free)

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

17.01.2019    30137    PoZiTiFFF    53    

Восстановление базы 1С, ошибка источника потока

Тестирование и исправление v8 Бесплатно (free)

Очередной кирпичик в основу решения проблемы восстановления работоспособности базы после динамического обновления.

09.01.2019    21205    idle    25    

Авто-восстановление "битых ссылок" при обменах с несколькими базами данных в режиме управляемых форм

Тестирование и исправление v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

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

31.07.2018    7481    SvkMaster    5    

1С: Сценарное тестирование 3.0. Запись и отладка интерактивного сценария

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Конфигурация «Сценарное тестирование 3.0» (далее СТ) позволяет записывать интерактивные действия пользователей и формировать на их основании сценарий тестирования, который в последующем можно использовать в тестах. Рассмотрим это на примере.

07.11.2017    17469    user759624    7    

Окно "Зарегистрировано 0 изменений из 1 на узле "Имя узла""

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Почему может появляться окно предупреждения "Регистрация изменений" с текстом " Зарегистрировано 0 изменений из 1 на узле "Имя узла" "" ? Как исправить проблему?

02.08.2017    25623    StudentM    9    

Рекурсия тестирования баз 1С. Когда однократного тестирования базы недостаточно

Тестирование и исправление v8 1cv8.cf Россия Бесплатно (free)

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

22.06.2017    11748    iskan    7    

Отладка не работает, или отладка фоновых заданий

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

На написание данной статьи вдохновила статья http://infostart.ru/public/633522/ Я разработчик старой формации, до сих пор обслуживаю клиентов на платформах 7.7, 8.1, 8.2, времени изучать все мануалы и отслеживать новые тенденции не хватает. Цель этой статьи помочь разработчикам, таким же людям, как и я. Если эта статья сэкономит, хотя бы, 1 человеко-час жизни, значит, написана не зря.

16.06.2017    30365    IvanovAV    27    

Когда перестает работать отладчик

Тестирование и исправление v8 Россия Бесплатно (free)

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

13.06.2017    31315    mickey.1cx    20    

Предопределенный элемент отсутствует в данных

Тестирование и исправление v8 БП3.0 Бесплатно (free)

Предопределенный элемент отсутствует в данных. Исправляем ошибку.

13.06.2017    29895    niko11s    17    

Перенос данных из базы с поврежденными таблицами

Тестирование и исправление Обмен через XML Перенос данных из 1C8 в 1C8 v8 БП2.0 Казахстан БУ УУ Бесплатно (free)

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

06.06.2017    16517    ermek6    14    

Ошибка формата потока. Решение с описанием проблемы

Тестирование и исправление v8 1cv8.cf Россия Бесплатно (free)

Ошибка формата потока. Страшная, но симпатишная своей загадочностью. 1С ничего толком не объясняет и не подсказывает. Ниже решение, которое мне помогает решать данную проблему на 100%. Всё очень просто. Данная ошибка возникает (на моей практике) только у клиент серверного варианта. просто потому что с другим форматом не работаю. Рекомендация: Старайтесь избегать динамического обновления, особенно если у вас возможны кратковременные проблемы с 220 и LAN. Далее описание лечения:

25.04.2017    38398    juker    10    

Ошибка в 1С: Не удается вставить повторяющуюся строку ключа в объект

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

В 1С может появиться ошибка такого рода: Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Попытка вставки неуникального значения в уникальный индекс: Microsoft SQL Server Native Client 11.0: Не удается вставить повторяющуюся строку ключа в объект "dbo._AccRgAT118760" с уникальным индексом "_AccR118760_ByPeriod_TRRRRN". Повторяющееся значение ключа: (ноя 1 5999 12:00AM, 0xab52f3e52b35efa847b0cfef9c90ff9d, 0x95eb00112f2a1abf11dac09f12116a47, NULL, NULL, NULL, NULL, 0). HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1 Техническая информация: Ошибка при чтении изменений при обмене РИБ: {ОбщийМодуль.ПроцедурыОбменаДанными.Модуль(1559)}: Ошибка при вызове метода контекста (ПрочитатьИзменения): Попытка вставки неуникального значения в уникальный индекс: Для ее решения делаем следующее:

18.04.2017    24203    tonn12    13