TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
QA в 1C — все о тестировании в мире 1С

17 Aug 2025, 09:27

Открыть в Telegram Поделиться Пожаловаться

🤔 [#ВопросОтвет] Как проверить, что документ проведен? Не могу найти подходящий шаг в библиотеке.

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


Готового шага, который бы мог проверить состояние проведения документа по номеру в библиотеке в VA нет

Из готовых шагов максимально близко к тому, чтобы реализовать нужное поведение, это шаги расширения VAExtension

И я получаю состояние текущего объекта (Расширение)
И я получаю состояние объекта по навигационной ссылке "НавСсылка" (расширение)

Оба считывают состояние объекта в автоматически создаваемые переменные, среди которых есть переменная Проведен булева типа Истина/Ложь в зависимости от того, проведен или нет документ.

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

И Я запоминаю в переменную "НомерДок" значение "000000018"
И Я открываю навигационную ссылку "e1cib/list/Документ.Заказ"
И Я очищаю фильтр на форме списка
И Я устанавливаю фильтр на список если это возможно
| 'Номер' | 'равно' | '$НомерДок$' |
И в таблице 'Список' я выбираю текущую строку
Тогда открылось окно "Заказ * от *"
И я получаю состояние текущего объекта (Расширение)
И я выполняю код встроенного языка
"""bsl
Если Не Контекст.Проведен Тогда
ВызватьИсключение СтрШаблон("Документ Заказ %1 не проведен, а ожидалось, что будет проведен", Контекст.НомерДок);
КонецЕсли;
"""

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

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

Сценарий: документ "[ВидДокумента]" с реквизитами проведен
И я удаляю переменную '__ДокСсылка'
Тогда я сохраняю в переменную "__ДокСсылка" ссылку на документ "[ВидДокумента]" с реквизитами
| Номер | '000000001' |
И я выполняю код встроенного языка на сервере без контекста с передачей переменных
"""bsl
Если Не Контекст.__ДокСсылка.Проведен Тогда
ВызватьИсключение СтрШаблон("Документ %1 не проведен!", Контекст.__ДокСсылка);
КонецЕсли;
"""

Используется этот шаг так:

И документ "Заказ" с реквизитами проведен
| Номер | '000000018' |

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


🦋 @QA_1C

850 1 4 21
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot