Тестирование: пример из семи шагов создания Unit-теста для платформы 1С

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

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

Unit тест тестирование

104
В этой статье мы расскажем, как создать Unit-тест. Опишем как это сделать с использованием Фреймворка xUnitFor1C. Рассмотрим пример максимально приближенный к боевому, покажем процесс отладки теста, поделимся советами и приложим несколько обработок-примеров. Вы сможете убедиться, что создание тестов на самом деле это относительно быстрый и простой процесс.

Окружение для теста – конфигурация: ЕРП 2 (демо база версия 2.2.4.59, 2.2.3.231, 2.1.3.195)/УТ 11 (демо база 11.3.3.205); Фреймворк xUnitFor1C, внешние обработки (см. приложения) .

Задача теста - проверить корректность работы функции «СкладыСервер.ПереоформитьРасходныеОрдера»; с пользовательской стороны - это проверка кнопки «оформить расходные ордера по заказам» рабочего места «управление отгрузкой» (см. рис. ниже).

Условие проверки -  при «имитации» нажатия кнопки «оформить ордера» должен будет сформироваться документ «Расходный ордер на товары» и табличная часть этого документа должна будет соответствовать  некоторой эталонной таблице значений.

рабочее место отгрузка товаров со склада

Шаг 1. Определяемся с данными для теста. 

1.1 НСИ: склад будет ордерный и существующий в демо базе «Магазин «Продукты»», организация «Торговый дом «Комплексный»», контрагента создадим нового «ООО Ромашка», также создадим новое типовое соглашение и договор контрагента (можно подобрать существующие).

1.2 Документы: нам нужно будет создать только два документа «Заказ клиента» (отгружать его будем в кредит) и «Расходный ордер на товары».

1.3 Дополнительно: можно создать документы поступления, это поможет решить проблему отсутствия/нехватки товара – «Поступление товаров и услуг» и «Приходный ордер на товары» (не обязательно).

 

Шаг 2. Создаем «эталонную» цепочку. В большинстве случаев рекомендуем создавать документы, а НСИ использовать существующую.

2.1 Создаем контрагента, партнера, типовое соглашение и договор контрагента.

2.2 Оформляем заказ, ставим его в отгрузку.

2.3 Создаем расходный ордер и снимаем его с проведения. Это будет наш эталонный документ для сравнения.

 

Шаг 3. Создаем макет данных, с помощью плагина «СериализаторMXL».

вариант «а» - быстрый
3.1 Открываем обработку в предприятии и остаемся на вкладке «Метаданные».

3.2 Устанавливаем в свойствах генерации макета флажки: «Выгружать ссылку», «Связь по ГУИД», «Обмен Данными», «выгружать с документом его движения», «Уровень выгрузки зависимых» в значение «2».

3.3 Указываем документ «Заказ клиента» и «Расходный ордер на товары» в дереве метаданных  или жмем кнопку «Структура подчиненности».

В форме указываем тип данных «Заказ клиента» и находим наш документ, далее добавляем в корзину и передаем в основную форму (см. рис. ниже).

Для удобства работы можно скрыть не выбранные элементы дерева метаданных с помощью кнопки «Только выбранные» .

3.4 Создаем и сохраняем макет (в обработке плагине «СериализаторMXL» кнопки «Создать макет данных» и «Сохранить макет в файл»).
3.5 Поверяем макет на другой «копии базы», т.е. убеждаемся, что мы выбрали все необходимые данные и не будет ошибки при подгрузке данных.(в обработке плагине «СериализаторMXL» для этого есть кнопки команды «Загрузить макет из файла» и «Протестировать загрузку макета»)

вариант «б» - только то что нужно
3.1 Открываем обработку в предприятии и остаемся на вкладке «Метаданные».

3.2 Устанавливаем в свойствах генерации макета флажки: «Выгружать ссылку», «Связь по ГУИД», «Обмен Данными». Также в дереве подчинённости снимем флажки «Выгружать при необходимости».

3.3 Жмем кнопку «Структура подчиненности» (особенности работы были описаны выше).

3.4 С помощью кнопки «Проставить отбор подчинённых ссылок»   из текущей строки документа в быстром режиме подбираем справочники, которые хотели выгрузить – это контрагент, договор контрагента и еще рекомендуем добавить справочники вида «ключи аналитик» (принцип работы аналогичен кнопке структура подчиненности).

3.5 Выбираем все движения регистров через кнопку «установить отборы для регистров» для документа «Заказ клиента» (для этого позиционируем необходимую строку документа и жмем кнопку отборов для регистров).

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

3.7 Создаем и сохраняем макет.

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

 

Шаг 4. Подготовка обработки для создания юнит теста. 

 4.1 Берем шаблон обработки для серверного теста.

 4.2 Открываем в конфигураторе и переименовываем шаблонные функции на созвучное нам имя теста (в модуле обработки и в модуле управляемой формы) как «ПроверитьФункциюОформленияРасходныхОрдеров».

4.3 Вставляем в обработку наш макет с начальными данными и называем его как «МакетДанных» (выгрузка см. шаг 3).

4.4 Сохраняемся.

 

Шаг 5. Создаем код теста. Ниже приведены логические пункты, на которые мы советуем разбить исходный код теста.

5.1 Подготавливаем данные для выполнения проверки функции.

5.2 Формируем параметры для функции.

5.3 Выполняем функцию.

5.4 Обрабатываем результат. Если документы создались, то выполняем сравнение табличных частей эталонных документов (из макета) и документов, созданных при выполнении процедуры. Сравнивать рекомендуем, только значимые колонки (нет смысла сравнивать внутренние ключи и т.п.).

    Код функции проверки:

    ////////////////////////////////////////////////////////////////
    // I получение данных из макета
    
    // 1.1 из макета
    МакетДанные = ПолучитьМакет("МакетДанные");
    СозданныеДанные = СериализаторMXL.СоздатьДанныеПоТабличномуДокументу(МакетДанные);
    
    Склад = СозданныеДанные.ЗаказКлиента.Склад;
    Получатель = СозданныеДанные.РОМАШКАООО_Партнер;
    ЗаказКлиента = СозданныеДанные.ЗаказКлиента;
    РасходныйОрдерНаТовары_Эталон = СозданныеДанные.РасходныйОрдерНаТовары;
    РасходныйОрдерНаТовары_Битый = СозданныеДанные.РасходныйОрдерНаТовары_Битый;
    
    // 1.2 готовим входные параметры для функции
    СтруктураПараметровСозданияРасходныхОрдеров = СкладыСервер.ПараметрыПереоформленияРасходныхОрдеров();
    СтруктураПараметровСозданияРасходныхОрдеров.Склад = Склад;    
    СтруктураПараметровСозданияРасходныхОрдеров.РаспоряженияНаОтгрузку = новый Массив;
    СтруктураПараметровСозданияРасходныхОрдеров.РаспоряженияНаОтгрузку.Добавить(ЗаказКлиента);   
    СтруктураПараметровСозданияРасходныхОрдеров.Получатель = Получатель;
    
    
    ////////////////////////////////////////////////////////////////
    // II вызов проверяемой функции
    
    СтруктураОтвета = СкладыСервер.ПереоформитьРасходныеОрдера(СтруктураПараметровСозданияРасходныхОрдеров);    
    
    
    ////////////////////////////////////////////////////////////////
    // III обработка и проверка результата
    
    // 3.1 Внутренняя ошибка
    БазовыеУтверждения.ПроверитьЛожь(СтруктураОтвета.ЕстьОшибка,"Внутренняя ошибка при создании расходных ордеров");
    БазовыеУтверждения.ПроверитьНеРавенство(СтруктураОтвета.ОформленныеОрдера.Количество(),0,"Внутренняя ошибка. Не удалось создать ордера");
    
    // 3.2 Сравним с эталоном
    // выгружаем только проверяемые колонки, некоторые необходимо проигнорировать
    СтрокаНужныхКолонок="Номенклатура,Характеристика,Назначение,Серия,Упаковка,
    |КоличествоУпаковок,Количество";
    
    УтвержденияПроверкаТаблиц.ПроверитьРавенствоТаблиц(РасходныйОрдерНаТовары_Эталон.ОтгружаемыеТовары.Выгрузить(,СтрокаНужныхКолонок),
        СтруктураОтвета.ОформленныеОрдера[0].РасходныйОрдер.ОтгружаемыеТовары.Выгрузить(,СтрокаНужныхКолонок));

         
Шаг 6. Проводим отладку теста. Сразу может заработать только простейший пример из разряда «2+3=5» (без этой функциональности первоначально юнит тесты у нас не поехали). 
6.1 Отключаем у пользователя защиту от опасных действий, в противном случае будут проблемы с загрузкой плагинов и менеджера юнит тестов.
6.2 Открываем обработку в предприятии на тестовой базе.
6.3 Указываем требуемые серверные пути (у нас на сервере разработки расшаренный каталог GIT, где находится все что необходимо).
6.4 Ставим точки останова и отлаживаем. 

Обработка теста

Шаг 7. Завершение. Все готово! Помещаем тест в рабочую папку/хранилище GIT, настраиваем задания для выполнения тестов.

 

Бонусы! 
А) Мы добавили обработку пример. В обработке примера две функции - правильная и битая (приводящая к ошибке для демонстрации). Кроме правильного эталонного расходного ордера есть еще «битый», при котором сработает наша проверка на равенство таблиц. В результате его выполнения мы увидим текст сообщения об ошибке – не совпадают табличные части в таких-то позициях (см. рис. ниже).
 Пример сообщения об ошибке для юнит теста
Б) В приложениях есть шаблон обработки с встроенным блоком для отладки и двумя примерами заготовками (загрузка данных из макета и выполнение простой функции).

 

Советы:
1. Запускать тесты удобно через Jenkins, TeamCity, а еще можно через Windows Task Manager.
2. Смотреть тесты красиво позволяет свободный фреймворк Allure.
3. Для удобства создания данных для тестов мы внесли некоторые изменения в плагин «СериализаторMXL», что оптимизировало процесс работы с ним: добавили возможность сохранения дерева настроек, загрузку макета, отбор документов по структуре подчиненности и пакетное формирование движений для выбранных документов, кое-что поправили еще; (в рамках нашего процесса). Есть в приложении, но также можно использовать стандартный плагин фреймворка.
4. Работайте с GIT - это позволит использовать тесты и инструменты работы с ними в командной разработке.
5. Рекомендуем прогонять тесты не только при сборке релиза, но и на ночном билде, а также на базах разработчиков.
6. Актуальную версию, весь необходимый набор плагинов и многое другое Вы можете скачать со странички проекта xUnitFor1C на github.

104

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

Наименование Файл Версия Размер
Обработка - UnitТест оформление расходного ордера на товары
.epf 18,27Kb
20.08.17
6
.epf 18,27Kb 6 Скачать
Плагин СериализаторXML*
.epf 129,85Kb
21.11.17
4
.epf 129,85Kb 4 Скачать
Шаблон обработки с режимом отладки для серверного теста
.epf 11,49Kb
20.08.17
7
.epf 11,49Kb 7 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. artbear 1156 29.08.17 14:41 Сейчас в теме
Плюс за использование нашего фреймворка xUnitFor1C.
4. ivanov660 1626 29.08.17 16:16 Сейчас в теме
(1) Других "достойных" фреймворков для юнит-тестов мы не нашли :-)
8. grumagargler 612 29.08.17 19:59 Сейчас в теме
(4) Спасибо за статью по теме тестирования! Почему "достойных" у вас в кавычках? :-)
Вы пробовали сценарное тестирование или тестер? Подобные примеры на мой взгляд не менее элегантно решаются и там. Интересно ваше мнение, почему другие системы не вошли в список достойных.
9. Сурикат 264 29.08.17 21:46 Сейчас в теме
(8)
ых" у вас в кавычках? :-)
Вы пробовали сценарное тестирование или тестер? Подобные примеры на мой взгляд не менее элегантно решаются и там. Интересно ваше мнение, почему другие системы не вошли в список достойных.


Я присоединюсь к высказыванию выше.
Если я хочу использовать TDD для тестирование кода на сервере, то сценарное тестирование подходит плохо. Очень много времени тратиться на прогон теста + в вашей конфигурации метод "Создать" необходимо делать.
А в xUnit можно набросать тест на проведение документа мин за 10.

Минус xUnit, что поведение форм тестировать неудобно. Хочется без открытия самой формы, чтобы все процедуры ПриОткрытии, ПриСозданииНаСервере отработали и там уже проверять свои.

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

Клиентские методы общих модулей тестировать одно удовольствие
12. grumagargler 612 30.08.17 00:14 Сейчас в теме
(9)
Я присоединюсь к высказыванию выше.
Если я хочу использовать TDD для тестирование кода на сервере, то сценарное тестирование подходит плохо

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

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

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

И даже если с этим всем всё в порядке, сценарное тестирование, на мой взгляд дает больше возможностей в плане тестирования как такового (вопрос не в том, какой подход лучше, а в какой имеет смысл больше инвестировать времени). Например, буквально недавно разрабатывал кастомный журнал документов, где обновление, удаления/проведения и т.д. нужно делать кодом вручную. И вот сценарий: вводится через такой журнал документ, изменяется в нем сумма, документ сохраняется и закрывается, нужно проверить, что в журнале, колонка сумма соответствует сумме документа. Разработку я веду через тестирование, поэтому у меня нет заготовленных данных и готового функционала для проверки. Сумму документа и новую сумму я в общем случае не знаю, я всё это создаю на лету сценарным тестом. Открываю журнал, ищу документ, не нашел - ввожу, нашел - запоминаю сумму в журнале, открываю документ, увеличиваю на доллар сумму, записываю, закрываю, проверяю сумму в журнале с расчетной. И так я запускал этот тест пока поведение не пришло к ожидаемому. Я не уверен, что обработкой на сервере вы сделаете тот же тест, не говоря о времени, которое экономится на итерациях Открыть журнал / Ввести документ / Запомнить сумму и т.д.
Artem-B; Alligator84; oleynik.dv; Dementor; tsukanov; tormozit; Armando; ivanov660; BabySG; +9 Ответить
14. vlad.frost 186 30.08.17 08:16 Сейчас в теме
(12)
сценарное тестирование, на мой взгляд дает больше возможностей в плане тестирования как такового

Я так понимаю, речь о типовой конфигурации "Сценарное тестирование"? Она умеет работать в составе какой-либо CI-системы сборки? Gitlab, Jenkins, TeamCity вот это вот всё? Поддерживает ли она запуск из командной строки?
xUnitFor1C всё это умеет, есличо.
pumbaE; artbear; +2 Ответить
26. grumagargler 612 30.08.17 17:21 Сейчас в теме
(14)
Я так понимаю, речь о типовой конфигурации "Сценарное тестирование"?

- нет, речь технологии тестирования

Она умеет работать в составе какой-либо CI-системы сборки? Gitlab, Jenkins, TeamCity вот это вот всё? Поддерживает ли она запуск из командной строки?
xUnitFor1C всё это умеет, есличо.

это всё здорово, вопрос лишь в том - насколько это ценно без возможности быстро создавать и управлять тестами как таковыми.
17. Сурикат 264 30.08.17 09:21 Сейчас в теме
(12)

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

В идеале нужно совмещать оба подхода.

Может в скором времени и к вашему подходу приду =)

(13)

Спасибо за пример!
19. artbear 1156 30.08.17 11:02 Сейчас в теме
(12) В очередной раз многовато текста, попробую ответить.

Большое лукавство говорить о TDD, юнит-тестах и отдельно о сценарном тестировании, которое используется в различных продуктах.
Сценарное тестирование по своей сути набор последовательных действий, которые идут в сторону одной цели.
Такое тестирование есть в xUnitFor1C, не нужно об этом забывать.
Так называмое "сценарное тестирование" это не только кнопконажималка :)

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

А еще есть т.н. сценарное тестирование в нашем же продукте vanessa-behavior - человеческий язык сценариев, отличное переиспользование шагов, большая библиотека шагов, автогенерация инструкций, поддержка автотестирования 1С 8.3 (кнопконажималка и прочее) и многое другое.

и xUnitFor1C и vanessa-behavior отлично и очень давно работают с различными билд-серверами - Jenkins, TeamCity, MS TFS/MS Team Services, Bamboo и т.п.
Получают красивую отчетность по тестированию, в т.ч. и учет трендов по тестам.

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

но для этого у нас есть различные помощники.
Например, наш генератор данных/сериализатор из xUnitFor1C как раз и разработан с целью минимизации последствий по обновлению структуры метаданных, в отличие от других средств сериализации - конвертация данных или универсальный обмен xml и т.п.
подробнее об этом я напишу в ответе на (18), .вопрос 1.

При использовании так называемого "сценарного тестирования", которое заключается в интерактивном создании необходимых данных через "кнопконажималку" автотестирования 1С 8.3, также возможны проблемы при обновлении. например, исчезновение полей в формах, перенос полей в разные закладки и т.п. и т.д.
Из опыта - проблем в кнопконажималке совсем не мало, падает в самых различных местах :(
27. grumagargler 612 30.08.17 18:42 Сейчас в теме
(19)
В очередной раз многовато текста, попробую ответить.

Спасибо.

Большое лукавство говорить о TDD, юнит-тестах и отдельно о сценарном тестировании, которое используется в различных продуктах.

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

А еще есть т.н. сценарное тестирование в нашем же продукте vanessa-behavior - человеческий язык сценариев, отличное переиспользование шагов, большая библиотека шагов, автогенерация инструкций, поддержка автотестирования 1С 8.3 (кнопконажималка и прочее) и многое другое.

и xUnitFor1C и vanessa-behavior отлично и очень давно работают с различными билд-серверами - Jenkins, TeamCity, MS TFS/MS Team Services, Bamboo и т.п.
Получают красивую отчетность по тестированию, в т.ч. и учет трендов по тестам.

Моя толерантность дает течь: лучше много текста по сути дела, чем реклама.

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

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

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

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

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

Давайте по существу. Вот у меня есть задача, нужно разработать табель учета рабочего времени. Нужно проверить расчеты всех видов часов в табеле, резерв времени, использование резерва и т.д. Нужно учесть, например, что период в табеле не указывается датой, а пролистывается стрелками. У каждого сотрудника может быть свой период табелирования, неделя/две/месяц. Таким образом, нужно учитывать, чтобы проверяемый тестом день отсутствия не попал на выходной, а рабочий не попал в праздник и так далее. Также, нужно определить сколько рабочих дней в периоде, чтобы сверить с расчетами. Да, можно использовать гарантированный месяц, где четко известны все эти данные, но как вы без условий и циклов открутите период назад, на нужный нам месяц? Вот было бы интересно посмотреть, что может предложить в этом плане ванесса в сравнении с тестером, например. Добавим сюда начальные данные, такие как клиент, проект, график работы, прием на работу, учтем, что это не один тест в природе, а таких будет много, где сотрудник будет уволен в течении отчетного периода или переведен на другой график работы. Что делать, когда появится тест, меняющий график, добавляющий праздник или меняющий тип проекта (всё случайно или намеренно), как и кто и будет ли вообще контролировать очередность тестов? Заготовка макетов для каждого такого случая просто не выглядит реальной, особенно в свете меняющейся конфигурации.
beckss; Artem-B; 1ceo_2015; Dementor; BabySG; tsukanov; +6 Ответить
28. artbear 1156 30.08.17 19:23 Сейчас в теме
(27)
В очередной раз многовато текста, попробую ответить.


Спасибо.


Да, извини, я и сам не удержался :(
Я хотел отвечать небольшими кусками текста, но не справился с этой задачей :)
13. vlad.frost 186 30.08.17 08:05 Сейчас в теме
(9)
Минус xUnit, что поведение форм тестировать неудобно.


Поведение форм тестируйте с помощью платформенного "Автоматизированного тестирования". В xUnitFor1C для этого есть плагин ТестКлиент

Пример использования:

&НаКлиенте
Перем КонтекстЯдра;
&НаКлиенте
Перем Утверждения;

&НаКлиенте
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
	КонтекстЯдра = КонтекстЯдраПараметр;
	Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
	НаборТестов.Добавить("Тест_СозданиеВалютыУНФ");
КонецПроцедуры

&НаКлиенте
Процедура Тест_СозданиеВалютыУНФ() Экспорт
	
	ТестКлиент = КонтекстЯдра.Плагин("ТестКлиенты").ТестКлиентПоУмолчанию();
	
	ВключитьНесколькоВалют(ТестКлиент);
	
	ОсновноеОкно = ОсновноеОкно(ТестКлиент);
	ОсновноеОкно.ВыполнитьКоманду("e1cib/command/Справочник.Валюты.Команда.Создать");
	ФормаНоваяВалюта = ТестКлиент.НайтиОбъект(Тип("ТестируемаяФорма"), "Валюта (создание)");
	
	ПолеСимвольноеПредставление = ФормаНоваяВалюта.НайтиОбъект(Тип("ТестируемоеПолеФормы"), "Символьное представление");
	Утверждения.ПроверитьТип(ПолеСимвольноеПредставление, Тип("ТестируемоеПолеФормы"), "Не найдено поле ""Символьное представление""");
	
КонецПроцедуры

&НаКлиенте
Процедура ВключитьНесколькоВалют(ТестКлиент)
	
	ОсновноеОкно = ОсновноеОкно(ТестКлиент);
	ОсновноеОкно.ВыполнитьКоманду("e1cib/command/ОбщаяКоманда.БольшеВозможностейДеньги");
	ФормаБольшеВозможностей = ТестКлиент.НайтиОбъект(Тип("ТестируемаяФорма"), "Больше возможностей: настройка программы");
	ПолеНесколькоВалют = ФормаБольшеВозможностей.НайтиОбъект(Тип("ТестируемоеПолеФормы"), "Несколько валют");
	Если ПолеНесколькоВалют.ПолучитьПредставлениеДанных() = "Нет" Тогда
		ПолеНесколькоВалют.УстановитьОтметку();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Функция ОсновноеОкно(ТестКлиент)
	КлиентсткиеОкнаТестируемогоПриложения = ТестКлиент.ПолучитьПодчиненныеОбъекты();
	Для Каждого ТекОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл
		Если ТекОкно.Основное Тогда
			Возврат ТекОкно;
			Прервать;
		КонецЕсли;
	КонецЦикла;
КонецФункции
Показать
10. ivanov660 1626 29.08.17 22:01 Сейчас в теме
(8) 1. Речь идет про юнит-тесты, а не про сценарные тесты - это "немного" разные вещи.
2. Конфигурация "Сценарное-тестирование" и "Тестер"не подошли нам (Мы решили написать свой "велосипед" для создания сценарных тестов для платформы 1С, про него мы расскажем позже).
11. grumagargler 612 29.08.17 23:19 Сейчас в теме
(10)
Речь идет про юнит-тесты, а не про сценарные тесты - это "немного" разные вещи.

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

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

2. Конфигурация "Сценарное-тестирование" и "Тестер"не подошли нам (Мы решили написать свой "велосипед" для создания сценарных тестов для платформы 1С, про него мы расскажем позже).

как сделали в свое время и мы, будет интересно посмотреть на ваш подход!
slax; Alligator84; grego; +3 1 Ответить
15. Timur_Bagautdinov 30.08.17 08:29 Сейчас в теме
(10)
1. Речь идет про юнит-тесты, а не про сценарные тесты - это "немного" разные вещи.


Как раз таки в примере и не видно юнит-теста. Согласен с коллегой выше, что здесь пример сценарного теста.
16. ivanov660 1626 30.08.17 09:00 Сейчас в теме
(15) 1. В статье идет речь о юнит-тесте и проверке функции "СкладыСервер.ПереоформитьРасходныеОрдера".
2. Все что описано в шагах 1,2 - это подготовка и создание данных для проведения юнит-теста.
(Мы внесли эти шаги для того чтобы желающие могли повторить последовательность действий от начала до завершения теста)
3. Конечно же можно написать сценарный тест для проверки задачи переоформления складских ордеров.

возможно ввела в заблуждение фраза "при имитации нажатия кнопки «оформить ордера» должен будет сформироваться документ «Расходный ордер на товары»". Под имитацией я подразумеваю вызвать функцию "СкладыСервер.ПереоформитьРасходныеОрдера".
2. artbear 1156 29.08.17 14:43 Сейчас в теме
Пожалуйста, поделитесь доработанной версией "СериализаторMXL", он общедоступный для всех.
я добавлю его в проект xUnitFor1C на github
3. ivanov660 1626 29.08.17 16:14 Сейчас в теме
(2) К статье прикрепить бесплатно система не дает, скидываю в комментах
Прикрепленные файлы:
СериализаторMXL.epf
Светлый ум; Lo1jke; vlad.frost; Сурикат; artbear; +5 Ответить
5. artbear 1156 29.08.17 16:35 Сейчас в теме
(3) Спасибо.

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


Есть более расширенное описание изменений плагина, чем в статье?
Если да, поделись. Можно в личку.
7. ivanov660 1626 29.08.17 17:46 Сейчас в теме
6. artbear 1156 29.08.17 16:45 Сейчас в теме
18. AlexKo84 30.08.17 10:35 Сейчас в теме
Добрый день.
Пользовался при разработки xUnitFor1C. Понравилось.
Однако есть вопросы, может Вы сможете подсказать.
1. Допустим делаю документ, выгрузил в шаблон макет а потом изменились его реквизиты(метаданные) выходит мне надо заново делать шаблон или пытаться править макет вручную. Это не удобно. Есть ли способ лучше?
2. Допустим я тестирую некий функционал который пишет свои результаты в базу, далее мне надо тестить функционал который зависим от предыдущего и тд, те один зависит от другого. Сейчас я просто вызываю из одного теста другой. Насколько это правильно? Если я буду делать шаблоны и не вызывая "предыдущий функционал" сразу вносить данные в базу для работы текущего тестирования то при изменениях мне придется много менять а это очень неудобно.
3. Есть ли какой то способ/рекомендация как организовывать тесты ведь если их много и они тестят функции зависимые от др и при этом прогружают данные из макета(СериализаторMXL) то по прошествии времени не особо помнишь что для чего.
20. artbear 1156 30.08.17 11:11 Сейчас в теме
(18) Спасибо за хорошую оценку нашего открытого и бесплатного продукта xUnitFor1C.
Отвечаю по пунктам:
1. Изменение метаданных - сложный этап.
Но при создании генератора данных в xUnitFor1C мы как раз постарались помочь решить эту проблему.

После изменения метаданных есть несколько способов реагирования.
1.1 ничего не делать :) , т.к. вполне может быть, что добавлен не столь значащий реквизит документ и документ, созданный из макета, все равно будет находиться в консистентом состоянии
1.2 если все-таки добавлен значащий реквизит, можно выбрать один из 2х способов ниже.
1.3 заново сделать шаблон документа. это может быть трудно - например. нет подходящего документа, или на документ много завязано других ссылок

1.4 подредактировать макет вручную !
на самом деле это не так сложно.
+ Структура макета довольно простая и специально сделана для повышения человекочитаемости и человеко-редактируемости. Табличный документ рулит :)
+ Генератор специально не загружает/не выгружает, а пропускает поля, значения которых не отличается от полей пустого документа.
+ например, значение Ложь для реквизита с типом Булево не будет выгружено или пустая ссылка для ссылочного типа не будет выгружена.
+ в итоге в макете остаются только значащие поля, в отличие от, например, универсальной выгрузки xml, которая очень зависима от изменения метаданных
+ можно просто добавить несколько полей в макет документа - добавить имя поля, его значение. в большинстве случае этого хватает.
21. artbear 1156 30.08.17 11:16 Сейчас в теме
(18) По вопросу № 2
Здесь нет простого решения, все зависит от конкретных особенностей.
Базовые рекомендации
+ либо используйте сценарии, т.е. из одного теста вызывайте другой
+ это возможно разными средствами xUnitFor1C -
+ например, ручной вызов теста из другого теста
+ либо используйте сценарный тест в самом xUnitFor1C - смотрите wiki продукта
+ либо можно развязать эти тесты от взаимного использовании и использовать только данные
+ сгенерируйте макет от первого теста и используйте его во втором.
+ тесты будут независимы, их будет легко проверять и разбирать в случае падения одного из тестов.

Напоминаю, что если тест/сценарий падает, то это возможно по 3-м причинам:
+ изменилось поведение системы (например, программист поменял код)
+ изменился тест
+ изменились данные

и бывает далеко не просто понять, в чем же проблема падения теста, и нужно принимать все меры к упрощению подобного анализа.
25. artbear 1156 30.08.17 11:33 Сейчас в теме
(18) По вопросу 3
> Есть ли какой то способ/рекомендация как организовывать тесты ведь если их много и они тестят функции зависимые от др и при этом прогружают данные из макета(СериализаторMXL) то по прошествии времени не особо помнишь что для чего.

Есть разные варианты, как всегда :)
+ Можно делить по блокам функционала - один каталог на верхнем уровне соответствует одному блоку
+ Можно делить по метаданным - один каталог на верхнем уровне соответствует одному метаданному
+ можно совмещать эти подходы
+ например, создание НСИ - отдельный каталог
+ создание документов - другой каталог
+ блоки функциональности - третий каталог
22. ivanov660 1626 30.08.17 11:18 Сейчас в теме
1. Актуализировать данные в случае изменений влияющий на проведение теста придется делать - это накладные расходы.
К примеру, можно снизить затраты на обновление, если использовать при загрузке макетов "обмен данными" = истина, тогда новые реквизиты просто будут проигнорированы. В рамках примера, когда мы пробовали тестировать его на некоторых версиях конфигурации ЕРП, то для совместимости мы удалили несколько реквизитов документа "заказ клиента" из макета, которые не влияют на решение задачи.
2. Все зависит от методологического подхода к решению задачи тестирования: делать много тестов, использовать один источник данных для всех тестов, использовать демо базу, использовать лицо, которое следит за актуализацией и др. Это большая и серьезная тема.
3. Удобнее всего использовать какую-либо систему учета тестов с описаниями и возможно ссылками на систему баг-трекинга.

Думаю, что чуть позже мы расскажем про наше видение данной ситуации. И в рамках этого вопроса/тематики я планирую выступить на конференции инфостарта.
23. artbear 1156 30.08.17 11:18 Сейчас в теме
Кстати, я уже несколько лет перестал употреблять юнит-тесты в применении к тестированию в 1С, а использую просто тесты или сценарные или приемочные тесты.
В 1С мало юнит-тестов, т.к. тесты чаще всего завязаны на БД.

поэтому лукавство говорить, что в xUnitFor1C, дескать,.юнит-тесты, а вот у нас сценарные тесты, как говорят некоторые коллеги :)
24. artbear 1156 30.08.17 11:27 Сейчас в теме
А еще есть т.н. сценарное тестирование в нашем же продукте vanessa-behavior - человеческий язык сценариев, отличное переиспользование шагов, большая библиотека шагов, автогенерация инструкций, поддержка автотестирования 1С 8.3 (кнопконажималка и прочее) и многое другое.

и xUnitFor1C и vanessa-behavior отлично и очень давно работают с различными билд-серверами - Jenkins, TeamCity, MS TFS/MS Team Services, Bamboo и т.п.
Получают красивую отчетность по тестированию, в т.ч. и учет трендов по тестам.


Кстати, я очень рекомендую посмотреть на vanessa-behavior.

человеческий язык сильно упрощает жизнь.

30 секунд рекламы :)
А еще лучше воспользоваться нашим курсом, чей логотип светится сейчас справа - Разработка по промышленным стандартам.
старт потока 11 сентября!

научитесь продуктивно и качественно работать в 1С.
29. artbear 1156 30.08.17 19:41 Сейчас в теме
большим лукавством я считаю скрытие или недостаточное внимание инфраструктурным вопросам и сложности тестов, заменяя это рекламой красивых отчетов, западных терминов и автоинструкций.

Зачем нам лукавить, все, кто с нами работает, знает нашу открытость, доступность и желание делиться знаниями.
Например, мы указанные вопросы активно исследуем и решаем в рамках наших платных имплементаций инженерных практик для различных команд, а очень часто и вообще бесплатно раздаем :)

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

Ванесса и т.н. "заготовка макета" это все-таки разные вещи, не нужно их смешивать.
БДД - это методика.

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

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

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

По своему опыту скажу - когда слишком большое разнообразие данных, становится очень не очень удобно или вообще неудобно собирать данные из кирпичиков, чаще проще проще представить единый набор данных для нескольких сценариев.
31. grumagargler 612 30.08.17 20:10 Сейчас в теме
(29)
Скажи, чем подготовка макетов данных отличается от программного или интерфейсного создания данных в разрезе тобой же указанных разнообразия данных?


Я здесь вижу несколько существенных плюсов.

1. Понимание данных.
- Программно: есть понимание какие данные важны и какова их глубина. Например, если мне для тестирования нужен клиент, и я в тесте его создаю, то я вижу, как я его создаю, я вижу, что передаю только имя контрагента. А валюта, договор, идентификационный код и другое - не передаются, а значит, для теста не важны.
- В макете: плоская таблица с выгруженными данными, является ли этот набор минимальным для создания объекта или это всё нужно для теста - не очевидно.

2. Низкая связность.
- Программно: создавая данные через сценарий, я задаю только то, что требуется, всю остальную работу по формированию сопуствующих данных выполняют обработчики _клиентских_ и серверных событий создаваемого объекта. Мне чтобы создать товар, нужно просто передать наименование, единицу измерения, полное наименование, какие-то записи в регистры уже сделает приложение. Вывод тут такой: при изменении структуры метаданных, мне не нужно думать о том, что я не использую, мне всё равно как там хранится тип товара, признак услуги это перечисление или галка и его вообще удалили.
- Макет: просто выгруженные данные, плоские, при несоответствии какого-то реквизита по типу или наличию как таковому - проблемы.

3. Лучшее покрытие.
- Программно: создавая объект он создается также, как его бы создавал пользователь, что ценно для тестирования
- Макет: загружается в особом режиме, с каким-нибудь ОбменДанными.Загрузка = истина, или не дай бог в транзакции

4. Понимание теста в целом.
- Программно: кроме того, что я вижу какие данные создаются, я вижу еще и как это происходит. Очередность, что за чем. Это дает возможность другим программистам понять мой сценарий и воспроизвести его у себя, в своих условиях
- Макет: не так очевидно, если что-то пошло не так, непонятно, это потому что какой-то реквизит конфликтует или действительно в моем функционале имеет место ошибка
slax; kuntashov; BabySG; tsukanov; +4 Ответить
32. grumagargler 612 30.08.17 20:22 Сейчас в теме
(29)
Ванесса и т.н. "заготовка макета" это все-таки разные вещи, не нужно их смешивать.
БДД - это методика.

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

Стараюсь не смешивать. Стратегически, у всех предлагаемых способов подготовки данных (из тех, что мне были доступны для прочтения) я вижу один фундаментальный изъян - статичность. Данные живут отдельно от приложения и не эволюционируют с ним. А уже как их там загружать, через макет, конвертацию данных или еще как - неважно. Ну например, используете вы конвертацию и выгружаете каждый раз данные из якобы живой базы. Но сами данные там устаревают, ведь их никто не "передергивает" в связи с изменениями функционала, реквизиты которые стали обязательными для заполнения, какие-то другие связанные данные. Я уже молчу о том, что правила конвертации менять тоже времени стоит, а если идет разработка нового функционала, где у программиста часть реквизитов есть, как версионировать правила? Это же очень тяжело организовать коллективную работу при таком подходе, возможно, да, но эффективность...
А в тестере, вы просто в коде сценария пишите если МояВерсия () тогда....и вся бригада прогеров спокойно работает с одним сценарием создания объекта
30. artbear 1156 30.08.17 19:47 Сейчас в теме
Условия и циклы в тестах и тестовых сценариях вредны.

в тестах должно быть отражение реальной системы :)

1 Если есть некое условие, значит, это не один тестовый сценарий, а несколько.
А раз несколько сценариев у системы, значит, и тестовых сценариев должно быть несколько.
Значит, нужно в тестовой системе нужно зафиксировать эти разные тестовые сценарии

2 если внутри тест.сценария есть условие/цикл, как определить, какой из вариантов условия/цикла выполнялся, а какой нет?
ведь если какой-то не выполнился, значит, проверки этого поведения не было сделано и тестирование задачу проверки поведения системы выполнило только частично :(
33. grumagargler 612 30.08.17 20:47 Сейчас в теме
(30)
1 Если есть некое условие, значит, это не один тестовый сценарий, а несколько.
А раз несколько сценариев у системы, значит, и тестовых сценариев должно быть несколько.
Значит, нужно в тестовой системе нужно зафиксировать эти разные тестовые сценарии

Совершенно верно, и я дополню: условий не должно быть в проверяемом сценарии, но это не значит, что условий не должно быть и в инструменте их создания. Например, начальные данные - это тоже условия прохождения теста, и разница лишь в том, что ты их создаешь руками, а не кодом, вот и всё.
34. Silverbulleters 31.08.17 10:58 Сейчас в теме
(33) заполнение начальных данных - это часть сценария поведения системы, даже для ERP ... а вы его сознательно пропускаете
new_user; +1 Ответить
35. grumagargler 612 31.08.17 19:58 Сейчас в теме
(34) Я к сожалению не понял эту реплику, особенно по части ERP. Разверните мысль.
36. tormozit 5595 01.09.17 07:12 Сейчас в теме
Вопросы по удобствам. В разделах модуля 1.1 и 3.*, как я понял, контекстной подсказки через точку никак не получится сделать или все таки можно что то придумать?
37. ivanov660 1626 01.09.17 12:25 Сейчас в теме
(36) Если я правильно понял суть вопроса, то сомневаюсь что в общем случае получится дописать как-то плагин(ы), чтобы минимизировать код.
38. artbear 1156 01.09.17 13:44 Сейчас в теме
(36) Сергей, разверни свой вопрос, я его практически не понял :(
1 - Данные для теста
3 - макет данных, верно?
39. tormozit 5595 01.09.17 14:42 Сейчас в теме
(38) В публикации есть "Код функции проверки" и в нем есть разделы модуля. Я спрашивал про удобство набора такого кода. Например будет ли подсказка после точки для "БазовыеУтверждения"?
40. artbear 1156 01.09.17 15:20 Сейчас в теме
(39) Нет, подсказки не будет, т.к. это внешний модуль - модуль внешней обработки :(

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

Например, для "старых" утверждений пишем Проверить и добавляем нужную проверку - ПроверитьРавенство, ПроверитьТип и т.п.

Некоторые пользуются шаблонами с автоподстановкой, я редко такими шаблонами пользуюсь

для "новых красивых/текучих" утверждений также все просто
шаблон Ожидаем.Что(Значение, ТекстОшибки).Это().Равно(2) или .ЭтоНе().Равно(1) и т.п.

тут можно пользоваться одним шаблоном.
41. YanTsys 12 21.11.17 21:02 Сейчас в теме
Я правильно понял что надпись "Фреймворк xUnitFor1C" подразумевает что во внешних обработках скрыт бинарный код?
42. so-quest 130 22.11.17 07:52 Сейчас в теме
(41) Нет, не правильно. Весь фреймворк - набор обработок, не более чем. Все открыто, лежит а гитхабе. можешь вполне спокойно скачать и изучить
43. YanTsys 12 22.11.17 09:07 Сейчас в теме
(42) Спасибо, тогда всё намного интереснее. Поставил звёздочку публикации :)
44. acsent 1138 23.11.17 11:39 Сейчас в теме
Если для тестов нужны какие-то общие данные, то для этого я, например, делал отдельную обработку-тест.
А чтобы проверять движения документов, и что другие движения не мешались (актуально для тестов закрытия месяца) я написал плагин РаботаСДокументами, где есть функция УдалитьДокументы(Организация)
https://github.com/a-sitnikov/erp2_xtests
45. ivanov660 1626 23.11.17 17:15 Сейчас в теме
(44) Как эта обработка поступает, когда документ нельзя удалить, т.е. на него есть ссылки?
46. acsent 1138 24.11.17 10:55 Сейчас в теме
(45) там удаляются все документы и рс. список метаданных задается вручную
Оставьте свое сообщение

См. также

CF & SQL : конструктор прямых запросов к БД 1С 133

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

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

1 стартмани

02.10.2019    3778    71    dmitrydemenew    18       

Конвейер проверки качества кода 117

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

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    4766    10    Stepa86    35       

Просмотр и анализ структуры базы данных (отчет на СКД) 95

Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика

Отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.

2 стартмани

24.07.2019    4700    66    YPermitin    21       

Структура подчиненности с хронологией документов и кнопками проведения и удаления 76

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

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

1 стартмани

22.07.2019    3290    46    sapervodichka    15       

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

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

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

1 стартмани

30.06.2019    2508    1    vadim1980    0       

Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD 135

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

Вы все еще тестируете свои конфигурации 1С вручную? Да вы просто тратите жизнь впустую! В данном туториале попробуем скрестить ADD и jenkins для автоматического запуска тестов.

1 стартмани

03.06.2019    9387    1    ripreal1    82       

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

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

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

1 стартмани

13.05.2019    15389    90    Diversus    38       

Групповая проверка доработок 101

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

Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем. Проверялась на Зарплата и управление персоналом КОРП 3.1.8.216, Управление торговлей 11, 1С:ERP Управление предприятием 2.4.7.141, Бухгалтерия предприятия КОРП 3.0.68.66.

2 стартмани

05.05.2019    6666    65    sapervodichka    23       

Расширение "Быстрая проверка кода" для конфигурации 1С:Автоматизированная проверка конфигураций 88

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

Расширение для конфигурации "1С:Автоматизированная проверка конфигураций", позволяющее проверять произвольный код.

1 стартмани

26.03.2019    9152    39    Bazil    22       

Настройка отладки на сервере 1С 93

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

Обработка для настройки отладки на сервере, включение отладки COM-соединений и отладки Web-сервисов.

1 стартмани

26.03.2019    10118    49    frkbvfnjh    32       

Методика оптимизации программного кода 1С: проведение документов 83

Инструменты и обработки Программист Архив с данными v8 v8::УФ Абонемент ($m) Обработка документов Производительность и оптимизация (HighLoad) Инструментарий разработчика

Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С. Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия. К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).

1 стартмани

19.03.2019    14056    13    dmitrydemenew    83       

Отчет по подпискам на события 83

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

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

1 стартмани

18.02.2019    4652    44    tomvlad    8       

Инструктор. Прототип инструмента создания быстрых пользовательских инструкций 69

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

Прототип дружелюбного и эффективного инструмента для написания пользовательских экспресс-инструкций. Задействована штатная утилита Windows, о существовании которой многие не знают и которая умеет делать огромную работу по логированию действий и снятию скриншотов на всех ПК с Windows (начиная с версии Win7). "Инструктор" не требует никакой установки и дополнительных библиотек! Это означает, что инструмент будет работать и на домашнем ПК и на "чужом ноутбуке" и на терминальном win-сервере у заказчика, где ваши права сильно ограничены. Вы просто подключаете легкую файловую базу 1С и получаете инструмент по снятию скриншотов с интересной функциональностью...

1 стартмани

15.02.2019    6667    37    ROM_NN    8       

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

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

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

1 стартмани

31.01.2019    25227    243    bonv    108       

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

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

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

2 стартмани

23.01.2019    8588    126    ROL32    21       

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь полноценный оффлайн (обновление от 15.08.19)! 169

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

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

5 стартмани

09.01.2019    20015    212    informa1555    167       

Управление задачами в 1С - готовая подсистема с открытым кодом и широким базовым функционалом. Версия 1.0.6 93

Инструменты и обработки no Архив с данными v8 Абонемент ($m) Инструментарий разработчика Управление бизнес-процессами (BPM) Управление проектом

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

2 стартмани

17.12.2018    9923    73    for_sale    36       

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

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

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

3 стартмани

28.10.2018    14890    176    ROL32    43       

Go. Разбор лога технологического журнала. Достойная альтернатива perl'у 85

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

Началось все с того, что я познакомился с перловыми скриптами для парса ТЖ которые размещены на kb.1c.ru (например в этой статье https://kb.1c.ru/articleView.jsp?id=113). По началу мне дико понравилось то, что перл разбирал гигабайты логов за считанные минуты, но позитив мой угасал обратно пропорционально с тем, насколько глубже я погружался в "кроличью нору" ....

1 стартмани

24.10.2018    9836    4    lazarenko    39       

HTTP Сервисы: Путь к своему сервису. Часть 4 102

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

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 3». В предыдущих частях мы уже о многом поговорили. В этой части поговорим про размер сообщений, о файлах, о порциях и немножко, о регламентах.

1 стартмани

28.09.2018    12492    15    dsdred    11       

Консоль Внедренца v.3.3 113

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

Идея данной обработки заключается в создании простого, функционального и универсального инструментария для внедренцев и программистов 1С, который будет работать как в толстом клиенте на обычных и на управляемых формах, так и в тонком клиенте. Интерфейс и логика работы максимально идентичны у обычных форм и управляемых. Инструментарий включает в себя: Консоль кода, Консоль запросов, Консоль отчетов (СКД), Универсальную обработку объектов, Средства для работы с таблицами базы данных 1С, Редактирование регистров сведений базы.

1 стартмани

27.08.2018    9863    232    evvakra    23       

HTTP Сервисы: Путь к своему сервису. Часть 3 133

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

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

1 стартмани

27.08.2018    14886    29    dsdred    13       

Управляемая консоль запросов, отчетов 3.7.5 (расширение, внешняя обработка) 361

Инструменты и обработки Программист Архив с данными v8 v8::УФ v8::Запросы v8::СКД 1cv8.cf Абонемент ($m) Консоль запросов

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Выполнение в фоне (с возможностью отмены), Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

1 стартмани

14.08.2018    49167    1100    Evg-Lylyk    418       

HTTP Сервисы: Путь к своему сервису. Часть 2 120

Статья Системный администратор Программист Расширение (cfe) v8 1cv8.cf ERP2 УТ11 КА2 Абонемент ($m) Инструментарий разработчика Практика программирования

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 1». В этой части будет "Микс" из OData+HTTP-Сервис(Get)+СКД. Наш пример будет работать как в браузере, так и в написанной нами обработке. Работать будем с разными версиями платформ.

1 стартмани

13.08.2018    16527    17    dsdred    0       

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

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

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

5 стартмани

09.08.2018    14775    23    informa1555    26       

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

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

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

1 стартмани

25.05.2018    14881    215    leongl    15       

Тестирование: Просмотр результатов тестов в предприятии 1С – Allure Skin 53

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

В данной статье мы расскажем об инструменте, который позволяет просматривать результаты тестирования в удобном и наглядном формате: общий обзор, с историей выполнения, с полной детализацией; в разрезе тестируемого приложения и номера проверки.

1 стартмани

10.05.2018    15529    6    ivanov660    18       

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

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

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

1 стартмани

24.04.2018    27240    72    kalyaka    34       

Тестирование: пример создания сценарного UI теста для платформы 1С 88

Статья Программист Архив с данными v8 ERP2 УТ11 Абонемент ($m) Инструментарий разработчика

В этой статье мы расскажем, как создать сценарный UI-тест. Опишем последовательность действий и покажем, как это сделать с использованием инструментария. Рассмотрим пример, максимально приближенный к боевому, покажем на примере конфигураций УТ11/ERP проверку бизнес-процесса "Продажа". Вы сможете убедиться, что создание сценарных тестов для платформы 1С на самом деле относительно быстрый и простой процесс.

1 стартмани

17.04.2018    13577    36    ivanov660    11       

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

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

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

10 стартмани

15.03.2018    10195    27    33lab    0       

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

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

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

1 стартмани

03.01.2018    19634    2    kraynev-navi    40       

Универсальный генератор отчетов СКД (Управляемые формы, тонкий клиент) 76

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

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

3 стартмани

20.11.2017    16257    187    Boneman    17       

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

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

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

1 стартмани

18.11.2017    19261    24    bonv    5       

Макет в СКД - пример всех возможных типовых вариантов 94

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

Макет СКД: наглядное представление того, что, как и куда выводится при типовых настройках.

1 стартмани

09.11.2017    16473    79    freelancer    4       

Полезный код для программистов 1С (часть 1). Управление свойствами элементов формы. Хранение копии данных реквизитов 141

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

У каждого программиста за время работы накапливается полезный инструментарий, которым он привык пользоваться. Естественно и у меня он тоже имеется. И вот решено было немного поделиться с сообществом. Возможно идеи не новые. Более того, допускаю, что реализованы они не самым оптимальным образом. Но ведь для этого сообщество и существует, чтобы делиться с ним, получая обратную связь.

1 стартмани

24.09.2017    31487    17    vandalsvq    79       

"Исследователь" планировщика 1С 80

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

Сам по себе Планировщик 1С вещь интересная, но чтобы осознать ее с 0 до уверенного владения, может уйти уйма времени. Мой инструмент призван сократить это время до минимума. Все необходимые настройки планировщика вынесены на форму, и их изменение сразу же либо по кнопке "Инициализировать" отображается на планировщике.

1 стартмани

10.08.2017    21777    108    new_user    26       

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

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

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

1 стартмани

28.06.2017    26624    317    Synoecium    44       

OneStyle. Улучшенное форматирование кода в конфигураторе 118

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

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

1 стартмани

19.06.2017    17416    24    Stepa86    45       

"Конвертация данных" + Git. Решение проблемы различий в файлах 112

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

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

1 стартмани

08.06.2017    16536    30    stas_ganiev    13       

Шаблон внешней обработки регламентного задания с формой настройки параметров выполнения 86

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

Шаблон внешней обработки призван упростить программисту процесс реализации внешнего регламентного задания. Пригоден к использованию во всех конфигурациях на управляемых формах, в которых присутствует подсистема "Дополнительные отчеты и обработки" из состава библиотеки стандартных подсистем (БСП) версии 2.1 и выше.

1 стартмани

28.05.2017    17450    144    Bassgood    10       

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

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

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

1 стартмани

22.05.2017    22809    99    Silenser    33       

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

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

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

1 стартмани

13.03.2017    22356    112    romasna    47       

Добавляем http-ссылки на самописную систему учета задач 87

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

Захотелось мне, чтобы в удаленном git репозитории можно было указывать ссылки на задачи и переходить по ним. Но не очень хотелось тратить на это много времени.

1 стартмани

09.02.2017    15327    5    Stepa86    22       

1С: Gitter 1.1 (Хранилище 1С => Git) 114

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

Развитие проекта gitter http://infostart.ru/public/273126/ . Позволяет выгружать хранилище 1С в репозиторий GIT.

1 стартмани

01.02.2017    19386    40    Stepa86    20       

Анализ сложности обновлений 8.3 87

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

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

2 стартмани

23.01.2017    9810    72    PavelLapin    26       

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

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

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

1 стартмани

11.11.2016    22198    63    grumagargler    47       

Отладка/доработка модуля менеджера "на лету" 89

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

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

1 стартмани

23.10.2016    22766    19    json    22       

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

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

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

1 стартмани

03.10.2016    27563    102    json    25       

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

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

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

1 стартмани

02.10.2016    47464    465    BlizD    284       

Универсальный шаблонизатор HTML 69

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

Генерация HTML кода, на основе шаблонов в стиле шаблонизаторов AngularJS / Twig и подобных. Поддержка Windows / Linux

1 стартмани

19.09.2016    9749    45    ArchLord42    19