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

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

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

Тестирование Unit-тестирование xUnitFor1C Vanessa-ADD

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

Введение

Разберемся немного в терминологии:

Функциональное (E2E) тестирование - проверка, что сценарии работы пользователя выполняются. Другими словами прогоны тестовых пользовательский сценариев. Поддерживается фреймворками "Сценарное тестирование", "Vanessa-ADD", "Vanessa-Automation", "Тестер" и др. Большинство из этих фреймворков специально созданы для написания функциональных/сценарных тестов. 

Unit-тестирование (модульное тестирование) - проверка на корректность отдельные единицы работы исходного кода программы. Минимальными единицами работы для нас являются процедуры и функции.

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

Функциональное тестирование требует подготовки - создание эталонных баз / шаблонов данных, проработки сценариев использования и их написания. Т.е. это больше история про процесс разработки, а не непосредственное написание кода, ответственность за поддержку лежит на команде.

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

Для Unit-тестов есть один специализированный фреймворк - xUnitFor1C (возможно я не прав, напишите, пожалуйста, в комментариях, если это не так). Его функционал плавно перекочевал в Vanessa-ADD. Также модульные тесты можно запускать и на фреймворках, предназначенных для функционального тестирования. Существуют плагин для EDT для написания unit-тестов с использованием фреймворка Vanessa-Automation (https://github.com/DoublesunRUS/ru.capralow.dt.unit.launcher).

Unit-тестирование и функциональное тестирование не исключают, а дополняют друг друга.

Функциональный тест vs Unit-тест

Попробуем сравнить разные виды тестирования.

Категории сравнения:

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

Критерий Функциональный тест Unit-тест
Скорость Медленный Быстрый
Область действия Сценарий пользователя Процедура/Функция
Сложность написания Средне Средне
Сложность запуска Средне Легко
Трудозатраты на написание  Большие Маленькие
Изменение трудозатрат на написание тестов с ростом количества тестов Уменьшаются Остаются неизменными
Скорость
Функциональные тесты достаточно медленные - нужно запустить тест-менеджер, нужно запустить тест-клиент и прогнать сам тест (воспроизвести все действия пользователя). В каких-то случаях подготовить тестовую базу: либо скопировать эталонную базу, либо создать в базе тестирование необходимые данные.
 
Unit-тесты запускаются намного быстрее, а данные которые необходимы тесту в большинстве случаев не нужно записывать в базу, а потом удалять. 
Область действия

Тестовое покрытие функционального теста намного выше. Он проверяет сценарий пользователя, а следовательно и все процедуры/функции, вызываемые во время выполнения.

Unit-тест - обычно проверяет одну функцию или набор связанных процедур.

Сложность написания

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

Функциональный тест можно записать "накликивая действия" в пользовательском интерфейсе. Большинство фреймворков позволяют преобразовать запись действий пользователя в сценарий, готовый к воспроизведению. К сожалению просто накликанные сценарии сложно поддерживать, приходится оптимизировать сгенерированный код. Да и забота о неизменности данных для тестов становится проблемой: не забывать удалять тестовые данные, делать так, чтобы данные для тестов не пересекались между собой непростая задача.

 Сложность запуска

Unit-тест запускается одной кнопкой. Пишем код, запускаем тест.

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

Трудозатраты на написание

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

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

Если вам нужен большой набор данных для Unit-теста, то скорее всего вы сделали что-то не так =)

Изменение трудозатрат на написание тестов с ростом количества тестов

Для функциональных тестов со временем копится подсценарии и новые тесты становится писать легче.

Для Unit-тестов фреймворк ADD/xUnit предоставляет богатый инструментарий и придумать того, что еще нет, довольно-таки сложно.

На что стоит писать Unit-тесты и что это дает 

 

Удобно писать
  • Расчетные механизмы 
  • Механизмы интеграции
  • Любые API

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

Неудобно писать
  • Отчеты
  • Интерфейсы

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

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

Бессмысленно писать
  • Обработки проведения документов
  • Обработки проверки заполнения
  • Печатные формы
  • Отчеты

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

Вместо итога

Я попытался обобщить свой опыт написания Unit-тестов. Если у кого-то был другой опыт, было бы здорово, если бы вы рассказали о нём в комментариях =)

В этом посте было мало практический примеров. Этот недостаток постараюсь исправить вот тут: //1c.smartsoft.kz/public/1085875/

 

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. sapervodichka 3888 22.07.19 14:45 Сейчас в теме
по быстрому можно такой обработкой протестить https://infostart.ru/public/1056811/
2. Сурикат 303 22.07.19 15:19 Сейчас в теме
(1)
Эта обработка проводит "дымовое тестирование". Такая возможность есть во многих фреймворках тестирования, которые указаны в статье

Её функционал несколько урезанный относительно аналогов - нельзя запускать на CI.
for_sale; zeegin; sapervodichka; artbear; +4 Ответить
3. sapervodichka 3888 22.07.19 15:36 Сейчас в теме
(2) спасибо))) главное, что она есть
4. artbear 1185 22.07.19 15:40 Сейчас в теме
(1) А эта Ваш набор обработок не является ли набором обработок из раздела ERP ?

уж очень функционал схож.

или я ошибаюсь?
5. artbear 1185 22.07.19 15:41 Сейчас в теме
(0) Спасибо за набор статей с практическими примерами по тестированию.

Отдельное спасибо за использование и популяризацию Ванесса-АДД - тесты кодом (например, юнит-тесты) все-также важны!
6. grumagargler 661 22.07.19 15:57 Сейчас в теме
Однозначно полезный материал, но вы пишите, что unit и сценарное дополняют друг-друга, а в статье делаете их противопоставление, сквозит мысль неудачного опыта сценарного тестирования :-)
Но это разные техники и подходы, и TDD заслуживает внимания само по себе, а не от обратного других методик.
7. Сурикат 303 22.07.19 18:34 Сейчас в теме
(6)
Целью статей было больше показать, что есть сценарии, в которых написание Unit-тестов позволит намного быстрее получить результат, чем при написании сценарных тестов.

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

Вот я и попытался описать те ситуации, в которых unit-тест отлично себя показывает =) По крайней мере в моей практике =)
8. grumagargler 661 22.07.19 19:11 Сейчас в теме
(7)
написание Unit-тестов позволит намного быстрее получить результат, чем при написании сценарных тестов

Да, я именно к этому и прицепился. Понимаете, механики тестирования у обоих подходов настолько отличаются, что даже тестируя казалось бы одну и туже функцию бизнес-приложения, о взаимозаменяемости говорить сложно. Юнит тест гарантирует работу определенного алгоритма, а сценарный - процесса. Юниту не нужно проверять срабатывания подписок на события или наличие объекта в меню, а сценарному, если и нужно только веб-сервис проверить, не менее важным является и достижимость функции в рамках процесса. В общем, хочу заразить идеей, что выставлять преимущества подхода лучше отталкиваясь от задачи, а не от неэффективности какой-либо другой методики.
9. artbear 1185 22.07.19 19:28 Сейчас в теме
(8) В рамках 1С "настоящие" юнит-тесты слабо возможны, т.к. наши тесты не отделимы от самой конфигурации 1С, платформы, СУБД и т.п.

я лично давно перестал употреблять термин именно " юнит-тестов", а использую термин "приемочные тесты" или "тесты кодом".

Любые приемочные тесты (хоть кодом (хЮнит, Тестер), хоть через БДД) имеют практическое одинаковые строение, как обычно, 3A :)

вопрос в инструментарии, удобстве разработки, сопровождаемости и т.п.

В рамках приемочных тестов в любом случае проверяются процессы. Только гранулярность этих процессов определяется разработчиком :)

лично я за последние годы практически не пишу тестов кодом, а использую возможности приемочного тестирования в виде БДД-сценариев.
при этом фактически работаю через механизмы ТДД/БДД.
10. ImHunter 194 23.07.19 07:20 Сейчас в теме
(9) А вот это я не понял:
В рамках 1С "настоящие" юнит-тесты слабо возможны, т.к. наши тесты не отделимы от самой конфигурации 1С, платформы, СУБД и т.п.

Речь о том, что тестируемый 1С-код редко когда бывает чисто unit-кодом? А чаще всего делает явные или неявные обращения за пределы модуля?
11. artbear 1185 23.07.19 10:34 Сейчас в теме
(10) в других языках программирования часто можно отделить бекграунд от самого класса и проверить только функциональность класса, например, не подключая СУБД, не вызывая веб-сервисы, какие-то конфигурационные действия и т.п.
В 1С с этим сложно, поле возможностей у нас поменьше.

всегда есть СУБД (файловая или настоящая), всегда есть платформа 1С, всегда есть конфигурации.

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

например, в большинстве случаев нет особого смысла абстрагироваться от объектной модели конфигурации, это усложняет логику.
12. Сурикат 303 23.07.19 10:53 Сейчас в теме
(9)

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

Но ведь можно представить что: у каждого метода языка есть параметры и есть контекст. Контекст - это параметры сеанса и методы доступа к БД.
Каждый метод нуждается не в полном контексте, а только в его части (кроме чего-то сильно глобального). И вот эту часть мы и можем мокать, создавая очень обрезанные объекты. Легкие, не требующие понимания а какие проверки нужно выполнить, чтобы он вообще создался.

Есть скажем контрагент, у него обязательно ИНН, КПП, заполненное по определенным правилам. Но в моем методе мне не нужен ИНН и КПП, мне нужна ссылка на контрагента и флаг "Не работаем", к примеру. И вот для модульного теста я и создам этого контрагента, не думая вообще ни о чем другом.

Да, это не полностью позволит мне проверить функционал, да я не проверю что процесс дойдет до конца. Но это не моя цель. Моя цель сейчас - написать метод. И я на нем фокусируюсь и проверяю только его поведение.

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

Т.е. сценарный тест проверяет взаимосвязь методов.
13. Сурикат 303 23.07.19 11:01 Сейчас в теме
(8)
Я именно это и пытался сделать, видимо не получилось =(

Если представить, что методы - это кирпичи, из которых мы строим дом - процесс взаимодействия пользователя в программе (простите за такие примитивные аналогии, лучше не родилось).

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

Наличие модульных тестов, не гарантирует работоспособности процесса. И если наша задача - проверить процесс, то вы абсолютно правы, модульный тест не самый лучший инструмент.
14. CheBurator 3421 23.07.19 14:19 Сейчас в теме
сколько пытаюсь представить - никак не получается.
вот допустим есть WMS. почти вся работа идет через RDP-доступ, обработки для ТСД.
как раз сценарное тестирование вроде бы подошло. Надо проверить ожидаемо ли отрабатывает куча нажатий по кнопочкам исполнителем (в т.ч. с учетом того, что с одного экрана по разным кнопочкам-горячим клавишам можно уйти на другие экраны где аналогично - очень быстро ветвится дерево возможностей). при этом то что видно на экране (в т.ч. и набор долступных горячих клавиш) определяется кучей настроечных параметров. как это все прогнать и оцениить правильно ли сценарий отработал или нет - я вообще не представляю. кроме как сидеть и наблюдать и тормозить если вижу проблему...
Или я неграмотный?
15. DmitryMironov 24.07.19 10:30 Сейчас в теме
(14)
Может стоить начать тестировать конкретные сценарии, а не просто сразу все возможные переходы и ветвления?
Например сценарий "Приемка товара", "Подбор товара", "Отгрузка товара" и т.д.
Каждый сценарий будет:
1. Показывать как ДОЛЖЕН работать функционал - можно также использовать как инструкцию для пользователей
2. Проверять что правильный путь сценария отрабатывает корректно
16. CheBurator 3421 24.07.19 11:52 Сейчас в теме
(15) ну да, только сам по себе сценарий "приемка товара" - достаточно развесистый. реально достаточно развесистый. и как быть? - дробить на суб-сценарии? где каждый субсценарий - это, например, одна включенная галочка в настройках? и как это вообще автоматом тестировать? автоматом включать-выключать настроечные галки и прогонять автоматом сценарий? как знать - правильно отработал сценарий или нет? вручную описывать сценарий (что само по себе уже является ручным прогоном этого сценария) для каждого набора настроечных параметров? ничего непонятно...
17. CheBurator 3421 24.07.19 11:54 Сейчас в теме
(15) сейчас по сути - выставляются конкретные настройки для какого-то одного варианта. и прогоняется сценарий вручную только для этих выставленных настроек.
18. Сурикат 303 24.07.19 12:49 Сейчас в теме
(17)
Выставляются конкретные настройки для какого-то одного варианта. и прогоняется сценарий вручную только для этих выставленных настроек


Автотест будет делать тоже самое. Только не в ручную проганяться будет, а автоматически. Можно распараллелить запуск тестов, запускать одновременно сразу несколько сценариев
19. CheBurator 3421 24.07.19 14:14 Сейчас в теме
(18) но по-любому, один раз сценарий надо прогнать вручную? и записать его? по всем возможным ветвлениям сценария?
20. Сурикат 303 24.07.19 14:54 Сейчас в теме
(19) Да, и даже не один.
Сценарий еще отладить нужно
21. CheBurator 3421 24.07.19 18:42 Сейчас в теме
(20) не, при тех ресурсах, которые есть - нереально
22. artbear 1185 29.07.19 17:34 Сейчас в теме
(19) Сергей, тебе уже несколько лет рассказывается и даже показывается, что тесты вполне реально можно сделать.
А ты все "нереально" :(

начни с малого - хотя бы один сценарий преврати в тест :)
24. CheBurator 3421 29.07.19 18:54 Сейчас в теме
(22) а сколько времени с нуля для неграмотного занимает развертывание "инфраструктуры" для работы с тестами-сценариями? (все на win-инфраструктуре)
25. Сурикат 303 29.07.19 21:33 Сейчас в теме
(24)
А вы уверены, что вам нужна инфраструктура?

По началу тесты можно и в ручную запускать. Запуск - 5 мин.
26. CheBurator 3421 29.07.19 22:34 Сейчас в теме
(25) и что - нажимания кнопочек и ввод значений будут сами по себе в тесте выполняться?
27. Сурикат 303 30.07.19 09:00 Сейчас в теме
(26)

Да, а вы чем-то другим в это время заниматься будете, более полезным
23. artbear 1185 29.07.19 17:35 Сейчас в теме
Все возможные ветвления не нужно проверять.
всегда компромисс и приоритезация тест.сценариев по разным критериям - бизнес-польза, частота срабатывания, легкость реализации и т.п.
Сурикат; +1 Ответить
Оставьте свое сообщение

См. также

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

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

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

12.09.2013    51108    0    OLEG4120    32    

Файл тестов для xUnitFor1C: тестирование проведения документов

Тестирование и исправление Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Тестирование проведения документов. Проверяется, что: а) документ проводится; б) движения документа после перепроведения не изменились.

30.06.2020    1084    0    q_i    8    

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

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

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

17.06.2020    1252    0    Farsis    0    

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

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

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

13.06.2020    919    0    Vortigaunt    1    

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

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

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

21.04.2013    49124    0    andrewks    20    

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

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

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

25.04.2020    3045    0    Gasilin    8    

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

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

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

23.04.2020    2307    0    ipoloskov    10    

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

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

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

16.04.2020    1418    0    VID1234    6    

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

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

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

08.02.2012    127644    0    VanDiesel1    137    

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

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

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

04.04.2020    3752    0    EvgeTrofi    5    

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

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

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

23.01.2020    3221    0    ClickUp    2    

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

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

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

10.01.2020    4886    0    VID1234    14    

Поиск и замена дублей + v0.99 Промо

Чистка базы Поиск данных Тестирование и исправление v8 1cv8.cf Бесплатно (free)

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

03.08.2007    72921    0    tormozit    227    

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

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

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

12.11.2019    5099    0    Olesia_Matusevich    12    

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

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

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

07.11.2019    7072    0    leaguener    5    

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

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

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

09.10.2019    4816    0    kadr    2    

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

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

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

23.09.2019    18095    0    Дмитрий74Чел    74    

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

Инструментарий разработчика v8 Абонемент ($m)

Пара практических примеров написания Unit-тестах с использованием фреймворка Vanessa-ADD.

1 стартмани

22.07.2019    3777    0    Сурикат    18    

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

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

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

11.06.2019    7912    0    l_men    8    

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

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

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

30.05.2019    5250    0    AlkB    4    

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

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

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

16.04.2019    6437    0    ikorulev    1    

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

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

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

25.02.2019    19748    0    YPermitin    32    

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

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

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

17.01.2019    26041    0    PoZiTiFFF    53    

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

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

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

09.01.2019    18610    0    idle    25    

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

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

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

31.07.2018    6972    0    SvkMaster    5    

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

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

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

07.11.2017    15657    0    user759624    7    

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

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

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

02.08.2017    21993    0    StudentM    4    

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

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

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

22.06.2017    11196    0    iskan    7    

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

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

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

16.06.2017    24490    0    IvanovAV    24    

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

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

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

13.06.2017    28873    0    mickey.1cx    20    

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

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

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

13.06.2017    25085    0    niko11s    11    

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

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

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

06.06.2017    15852    0    ermek6    14    

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

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

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

25.04.2017    28438    0    juker    3    

Ошибка в 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    21917    0    tonn12    13    

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

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

Предлагаю познакомиться с инструментом "Автоматизированная проверка конфигураций" и получить практику его применения

18.01.2017    54589    0    Vladimir Litvinenko    23    

BDD 1С по душе

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

Размышляя над проблемой тестирования, а точнее над проблемой качества решений, умные и не очень люди, в основном ломают копья над следующим противоречием “надо тестировать, но надо разрабатывать, а не тестировать” (Алексей Лустин) www.silverbulleters.org

15.01.2017    25081    0    dima_tuzov    44    

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

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

После динамического обновления перестал открываться конфигуратор. При попытке открытия возникала ошибка "Нарушена целостность структуры конфигурации", после чего предлагался перезапуск или завершение программы. Решено с использованием материалов из сети. Описание личного опыта решения проблемы для клиент-серверного варианта на базе MS SQL 2012 и 1С Предприятие 8.3 (8.3.8.1675) при наличии прав администратора на сервере и резервных копий конфигурации

17.12.2016    18655    0    Dot78    12    

Файловая база зависает при реструктуризации таблиц. 8.3

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

Файловая база УНФ 1.6, платформа 8.3.7.1790. База перестала проходить Тестирование и исправление (ТиИ), при реструктуризации зависала на таблице Присоединенные файлы, при этом можно было закрыть окно ТиИ по кнопке Закрыть и закрыть потом конфигуратор, но база оставалась в монопольном режиме, помогало только принудительное удаление файла блокировок.

18.11.2016    14539    0    de0nis    2    

Как объять необъятное, или советы по тестированию

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

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

18.10.2016    14976    0    nrukol    14    

Ошибка в размере файла *** при выгрузке таблицы files. Ожидаемое значение 0, а значение в таблице *** Исправление этой (и некоторых других) проблемы средствами MS SQL и PostgreSQL

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

Проблема с "битой" сохраненной настройкой пользователя, не позволяющей (начиная с релиза 8.3.7) произвести выгрузку БД

17.08.2016    21541    0    dr2c    9    

Решение проблемы с открытием периода ТиС

Тестирование и исправление v77::ОУ 1С7:ТиС Россия УУ Бесплатно (free)

Способ решения проблемы с открытием периода в конфигурации "Торговля и склад" версии 7.7 (вызванной регистром "Книга продаж")

05.06.2016    16095    0    zemskov    15    

Результаты обновления и дополнительная обработка данных

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

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

1 стартмани

26.04.2016    28888    0    dsitiy    12