Показаны сообщения с ярлыком управляемые формы. Показать все сообщения
Показаны сообщения с ярлыком управляемые формы. Показать все сообщения

6 нояб. 2016 г.

Автоматизированное тестирование: обмен данными между клиентом и менеджером


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

13 окт. 2016 г.

Передача данных таблицы значений с сервера на клиент

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

31 янв. 2016 г.

Просмотр структуры базы данных

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

21 июн. 2014 г.

Генерация XGML-диаграммы движений документов для yEd

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

24 мая 2014 г.

Реализация иерархии в перечислениях

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

5 февр. 2014 г.

Получение уникального идентификатора ссылки в СКД

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


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


30 янв. 2014 г.

Динамический отчет (СКД)

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


Потом возникла мысль попробовать объединить все схемы в один отчет, чтобы не плодить лишних объектов в конфигурации. При этом количество вариантов в этих схемах заранее неизвестно. Ok, challenge accepted.

29 янв. 2014 г.

Генерация UML диаграммы движений документов

При разработке более-менее сложной учетной системы разработчик обычно пытается предварительно определиться с взаимосвязями объектов этой системы. Может подойти как обычный листок бумаги с карандашом, так и специализированное ПО. Так же при проектировании диаграмм можно придерживаться определенных стандартов, например UML (Unified Modeling Language). С UML можно познакомиться с помощью курса "Моделирование на UML", почитать в онлайне книгу "Моделирование на UML" или курс лекций "Нотация и семантика языка UML" . Подборку программного обеспечения для создания UML диаграмм можно посмотреть по этим ссылкам: List of Unified Modeling Language toolsИнструменты UML-моделирования. Я в своих экспериментах использовал для генерации диаграмм онлайн-редактор CodeUML и плагин к IDE Eclipse, который можно скачать на сайте PlantUML.

14 янв. 2014 г.

Интерактивный контроль заполнения полей

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

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

7 авг. 2013 г.

Передача данных во Flash через flashvars


Сегодня решил попробовать совместить навыки разработки в 1С и Flash. Простой вывод swf-файла в поле HTML документа 1С не так интересен. Гораздо интереснее было бы реализовать передачу данных из 1С во Flash. Для этого будем использовать параметр flashvars, который можно определить в коде html-страницы.
Для написания кода для Flash проектов я использую IDE FlashDevelop. Если вы решите повторить создание swf-файла с помощью FD, то при установке необходимо будет позволить установщику скачать актуальный FlexSDK. После запуска IDE создаете новый проект "AS3 Project" и заменяете код в созданном файле Main.as на нижеприведенный, после чего можно компилировать проект. Готовый файл будет находиться в подкаталоге /bin проекта. В результате у нас получится swf-файл, содержащий текстовый контейнер, который можно перетаскивать мышкой. При этом он при перетаскивании немного увеличивается в размерах и отбрасывает тень.

18 июл. 2013 г.

Excel Fast Massive Load


Какие бы ни были большие по объему импортируемые данные, всегда хочется, чтобы они грузились как можно быстрее. Иначе зачем нам тогда эти хх-ядерные компьютеры с уу-гигабайтами оперативы. Для Excel в качестве альтернативы классическому медленному последовательному обходу по ячейкам листа можно использовать считывание данных в память с последующей обработкой.
Сначала мы так же подключаемся через COM-соединение к необходимому файлу и получаем нужный лист с данными. Далее, обращаемся к свойству листа .UsedRange.Value. Это свойство содержит значение типа COMSafeArray, с котором 1С умеет работать и в котором как раз и находятся все необходимые нам данные. Через метод Выгрузить() получаем наши данные и обрабатываем их. В качестве примера приведу обработку и замеры по быстродействию.

21 мая 2013 г.

Программная установка типа реквизита табличной части

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

&НаКлиенте
Процедура ДобавитьВалюту(Команда)
    
    ТС = Объект.ТЧ.Добавить();
    ТС.Имя = "Валюта";
    ТС.Значение = ПредопределенноеЗначение("Справочник.Валюты.ПустаяСсылка");
    Элементы.ТЧ.ПодчиненныеЭлементы.ТЧЗначение.ВыбиратьТип = Ложь;
    
КонецПроцедуры
 
После решил добавить решению универсальности и реализовать программное формирование контекстного меню для табличной части справочника с составным реквизитом с заранее неизвестным перечнем типов.