Программное создание управляемой формы

Программное создание управляемой формы

0
300
25.09.2019 Вадим Хоменко

Содержание:

1. Создание элементов формы

2. Работа с системой с учетом затрат 

    

1.    Создание элементов формы

 

Создание элементов формы – занятие отнюдь не программного характера. И делается это так. Мы создаем реквизиты формы 1С 8.3, потом «перекидываем» их в элементы формы, задаем оформление, и форма готова! В конфигураторе 1С 8 в таком случае мы увидим приближенную к пользовательскому интерфейсу форму. Это удобно.


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


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


2. Работа с системой с учетом затрат


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


Решено сделать слева виды топлива, сверху – поставщиков, а на пересечении –цены. Конечно же, добавим к этому дату, на которую действуют эти цены (но это уже просто руками). Аналогичная схема применяется при установке цен в 1С:УТ, Рознице, ERP, когда слева мы видим номенклатуру, а сверху – виды цен.


Наша форма будет выглядеть так:




Нам нужен реквизит «Дата». Это дата, на которую действуют цены, Список значений «Поставщики» - это для удобства работы (об этом дальше в коде) и «ТаблицаЗначений» - это и будет наша кросс-таблица (колонки и строки мы заполним программно).


Для обновления данных в таблице у нас будет отдельная процедура, чтоб можно было не только изначально построить ее, но и обновлять (если кто-то внес нового поставщика, вид топлива или цену). В процедуре запросом выбираем данные из трех таблиц: Виды топлива, Контрагенты (только поставщики топлива) и Цены топлива. Небольшое отступление: база самописная, и исходим мы от того, какой функционал уже реализован. В выборке мы получаем таблицу с тремя колонками «ВидТоплива, Поставщик, Цена» с итогами по виду топлива.


Преобразовываем реквизит формы «ТаблицаЗначений» в объект и удаляем колонки, которые могли быть созданы ранее (это для обновления).




Вы спросите, зачем очищать только что созданный массив? Это, наверное, привычка. Расскажу анекдот: «Буратино дали три яблока. Два он съел. Сколько яблок осталось у Буратино? Думаете одно? Ничего подобного. Никто же не знает, сколько у него уже было яблок до этого!». Мораль – обнуляйте переменные.


Очищаем таблицу объект и условное оформление формы. В условном оформлении мы зададим условие, чтобы нули отображались как дефисы, это для красоты, мы же все-таки не дрова рубим))).




В таблицу объект добавляем первую колонку, она всегда будет «Вид топлива».




Далее делаем выборку по группировке «Вид топлива». Создаем строку. В детальных записях выбираем поставщика с ценами, создаем его колонку и заполняем ее для вида цены.

Так как имена реквизитов формы не могут содержать некоторые символы – убираем их.




Когда таблица объект заполнена, пробегаем циклом по ее колонкам и создаем колонки как реквизиты формы. И, конечно же, возвращаем наш объект Таблицу обратно в реквизит формы (со всеми заполненными ранее значениями, строками).




Теперь осталось добавить сами элементы на форму на основе созданных реквизитов.

И в том же цикле добавляем условное оформление 8.3, чтоб нули отображались как дефисы.




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




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


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


Специалист компании ООО «Кодерлайн» 

Вадим Хоменко.

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Теги
#1С: CRM #1С: ERP #1С: ERP Управление строительной организацией #1С: ERP. Управление буровой компанией #1С: WMS Управление складом #1С: Аренда и управление недвижимостью #1С: БУХ #1С: Договорчики #1С: Документооборот #1С: ЗУП #1С: Интеграция #1С: КА #1С: Колледж #1С: Конвертация данных #1С: Модули #1С: Платформа #1С: Розница #1С: Сценарное тестирование #1С: ТОИР #1С: УАТ #1С: УКФ #1С: Университет #1С: УНФ #1С: УПП #1С: Управление строительной организацией #1С: УТ #1С: УХ #1С:ERP #1С.6-НДФЛ #ADO #APACHE #API #com-объекты #Excel #Excel в 1С #GoogleDrive #HTTP #ITIL #Koderline: Управление медиа-холдингом #Koderline: Управление проектами строительства скважин #LINUX #MS SQL Server #WEB #WEB-сервисы 1С #Word #XML #Администрирование 1С #Безопасность сервера #Бесшовная интеграция #БИТ.Финанc #Битрикс24 #Блокировки в 1С #БСП #БУ #Бурение скважин #Бюджетирование #Внедрение #Внедрение ERP #Закрытие месяца #Запросы 1С #Интеграция 1С #КАК ОТРАЖАЮТСЯ ТОВАРЫ В ПУТИ 1С #Как сделать в 1С #Конвертация данных #Корпоративное сопровождение #Лизинг #Лицензии 1С #Механизм Анализа Данных в 1С #Моделирование #Модуль Диадок #МСФО #Налоги #Обмен между базами #Обновления #Оптимизация #Отпуск #Отчетность #Отчеты в 1С #Оценка задач #Перенос данных #Планирование #Полезные обработки #Правила обмена #предопределенные элементы справочников #Проводки 1С #Программирование в 1С #Программные права #Продажи #Производство #Работа с объектами в 1С #Расширение конфигурации #РСБУ #СКД #Соединение COM в 1С платформе #Сравнение конфигураций #Тестирование 1С #Техническое задание #Торговое оборудование #Транспортная логистика #Управление проектами #Финансовый учет #Хранилище настроек #Ценообразование #Экзамен 1С #Яндекс.Касса Email или телефон Работа с объектами в 1С Функциональные опции в 1С
Услуги программиста 1С
Получите специалиста  
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.