Управляемые формы. Изменение формы списка или формы объекта без внесения изменений в типовые формы (без использования расширений)
Разработка - Работа с интерфейсом
Часто требуется внести изменения в типовые формы объектов (документов, справочников, журналов, обработок и т.д.)
Есть несколько методов решения этих задач:
- Снимать с поддержки форму, вносить в нее изменения. Все просто, но проблемы возникнут при обновлении релиза конфигурации.
- Переносить форму в расширение и править там. Тоже просто, но если при обновлении релиза форма поменяется (добавятся новые поля к примеру), то придется еще дорабатывать расширение.
- Создавать элементы формы программно в общем модуле. Проблем с обновлением на новый релиз не будет. Рассмотрим данный метод.
В типовых конфигурациях в формах объектов в процедуре ПриСозданииНаСервере есть обращение к общему модулю СобытияФорм.ПриСозданииНаСервере
Далее идет обращение к общему модулю МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере
В этом модуле процедура ПриСозданииНаСервере пустая. Тут и добавляем ссылку уже на наш модуль (не типовой модуль).
Доработка_ФормаПриСозданииНаСервере.ИзменитьФорму
В этой процедуре разбиваем формы по объектам и названиям форм.
Для удобства можно добавлять отельные общие модули для каждого объекта.
Доработка_ДокументСчетФактураПолученныйФормаСпискаДокументов
Доработка_ДокументСчетФактураПолученныйФормаДокумента
Тут редактируем запрос в динамическом списке. Методом СтрЗаменить. Добавляем левое соединение, добавляем новое поле в выборку запроса.
Программно добавляем колонку. ПутьКДанным указываем наша новое поле, которое мы добавили в запрос "Список.Д_ЕстьФайлы".
Процедура ПриСозданииНаСервере(Форма, Объект = Неопределено) Экспорт
ДинСписок = Форма.Список;
ТекстЗапроса =
"Документ.СчетФактураПолученный КАК ДокументСчетФактураПолученный
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов
| ПО ДокументСчетФактураПолученный.Ссылка = НаличиеФайлов.ОбъектСФайлами";
ДинСписок.ТекстЗапроса = СтрЗаменить(ДинСписок.ТекстЗапроса, "Документ.СчетФактураПолученный КАК ДокументСчетФактураПолученный", ТекстЗапроса);
ТекстЗапроса = "ДокументСчетФактураПолученный.Ссылка,
| ВЫБОР
| КОГДА НаличиеФайлов.ЕстьФайлы ЕСТЬ NULL ТОГДА 1
| КОГДА НаличиеФайлов.ЕстьФайлы ТОГДА 0
| ИНАЧЕ 1
| КОНЕЦ КАК Д_ЕстьФайлы,";
ДинСписок.ТекстЗапроса = СтрЗаменить(ДинСписок.ТекстЗапроса, "ДокументСчетФактураПолученный.Ссылка,", ТекстЗапроса);
ПодчиненныйЭлемент = Форма.Элементы.Вставить("Д_ЕстьФайлы", Тип("ПолеФормы"), Форма.Элементы.Список, Форма.Элементы.СодержитНекорректныхКонтрагентов);
ПодчиненныйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
ПодчиненныйЭлемент.ПутьКДанным = "Список.Д_ЕстьФайлы";
ПодчиненныйЭлемент.Вид = ВидПоляФормы.ПолеКартинки;
ПодчиненныйЭлемент.КартинкаШапки = БиблиотекаКартинок.Скрепка;
ПодчиненныйЭлемент.КартинкаЗначений = БиблиотекаКартинок.Скрепка;
ПодчиненныйЭлемент.Ширина = 1;
КонецПроцедуры
В результате появляется заполненная колонка.
Еще для примера приведу добавление "полей ввода" на форму.
Процедура ПриСозданииНаСервере(Форма, Объект = Неопределено) Экспорт
//Поле ввода. Реквизит формы
Реквизит = Новый РеквизитФормы("Д_ФИОРодительныйПадеж", Новый ОписаниеТипов("Строка"), , "ФИО родительный падеж", Истина);
мРеквизиты = Новый Массив;
мРеквизиты.Добавить(Реквизит);
Форма.ИзменитьРеквизиты(мРеквизиты);
НовыйЭлемент = Форма.Элементы.Вставить("Д_ФИОРодительныйПадеж", Тип("ПолеФормы"), Форма.Элементы.ГруппаОсновныеСведения ,Форма.Элементы.ДолжностьПоВизитке);
НовыйЭлемент.ПутьКДанным = "Д_ФИОРодительныйПадеж";
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ОтметкаНезаполненного = Истина;
НовыйЭлемент.АвтоОтметкаНезаполненного = Истина;
//Поле ввода. Реквизит объекта
НовыйЭлемент = Форма.Элементы.Добавить("Д_ДанныеОТранспортировкеИГрузе", Тип("ПолеФормы"), Форма.Элементы.ГруппаДополнительно);
НовыйЭлемент.ПутьКДанным = "Объект.Д_ДанныеОТранспортировкеИГрузе";
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.Заголовок = "Данные о транспортировке и грузе";
НовыйЭлемент.РастягиватьПоГоризонтали = Ложь;
НовыйЭлемент.Ширина = 28;
КонецПроцедуры
Проверял на конфигурации 1С:Комплексная автоматизация 2
Платформа 1С:Предприятие 8.3 (8.3.13.1644)
Специальные предложения
См. также
Новогодние скидки на авторское ПО Промо
В преддверии праздника в Маркетплейсе на Инфостарт действует скидка на все платные авторские программы. Размер скидок начинается от 10%. Советуем не откладывать покупки, многие наши партнеры повышают цены на свои продукты именно в начале нового года.
Подборка программ для взаимодействия с ЕГАИС Промо
ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.
1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо
Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.
6500 рублей
Программы для исполнения 488-ФЗ: Маркировка товаров Промо
1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.
Перенос данных БП 3.0 => УТ 11 / КА 2 / ERP 2 (ЕРП) (перенос остатков, документов и справочной информации из "1С:Бухгалтерия предприятия 8", ред.3.0). Обновлено до БП 3.0.73.х, УТ 11.4.10.х, КА 2.4.10.х., ERP 2.4.10.х! Промо
Переносятся документы за выбранный период, справочная информация и остатки по счетам бух. учета в программу УТ 11 / КА 2 / ЕРП 2 (ERP). Переносятся все возможные виды операций ввода остатков на нужную дату. Есть отбор по периоду переноса документов и фильтр по организации, доступен выбор даты ввода остатков. Если нужно переносить что-то дополнительно, то обычно бесплатно добавляем это в перенос . Смотрите видеодемонстрацию со звуком - советами по переносу и рекомендациями настройки программ.
29700 руб.
Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.10.х и УТ 11.4.10.х! Промо
Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!
29700 руб.
Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С 33
07.08.2019 5773 IvanAT1981 14
Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0"). Обновлен до версий КА 1.1.115.х, УПП 1.3.127.х! Промо
Разработка позволяет перенести остатки по всем счетам бух.учета в программу "1С:Бухгалтерия предприятия 8", ред. 3.0 на выбранную дату начала ведения учета. Также переносятся документы за период и вся необходимая справочная информация. Правила оперативно обновляю при выходе новых релизов. Рассылка обновлений правил бесплатно в течение 12 месяцев. Есть видеодемонстрация проведения переноса данных. Конфигурации при использовании обмена остаются полностью типовыми. Перенос данных возможен в Бухгалтерию 3.0 версии ПРОФ, КОРП или базовую.
24700 руб.
Подборка решений для взаимодействия со ФГИС «Меркурий» Промо
С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.
Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП 93
14.05.2019 9750 Viktor_Ermakov 6
Базовый курс для начинающих 1С-программистов. Пятый поток. Онлайн-курс с 12 февраля по 15 апреля 2020 г. Промо
Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.
4500/9500 рублей
Простой механизм работы с объектами конфигурации с помощью внешних обработок 29
09.02.2019 6470 starik-2005 8
Перенос документов и справочников ERP 2 / КА 2 / УТ 11 => БП 3.0 Промо
Перенос позволяет настроить собственный обмен данными между указанными программами, альтернативный предлагаемому фирмой 1С. Предоставляем техподдержку по всем вопросам данного обмена. Можем подключиться к вам удаленно для разбора ситуаций. Оперативно обновляем при выходе новых релизов 1С. Бесплатные обновления в течение полугода.
19700 руб.
Очный семинар по регулярному менеджменту Александра Фридмана "Вы или Хаос", 12 декабря 2019 г. , Санкт-Петербург Промо
Семинар по регулярному менеджменту от Александра Фридмана для собственников, первых лиц и топов. Технология управленческого планирования, комплексного управления временем и другими ресурсами, выполнением поручений, делами, информацией, контактами (встречи-звонки-почта).
от 11000 до 29000 рублей
Базовый курс по разработке мобильных 1C-приложений для Android-устройств. Третий поток. Онлайн-интенсив с 11 февраля по 05 марта 2020 г. Промо
Данный онлайн-курс предусматривает изучение базовых принципов создания приложений для операционной системы Android, работающих на мобильной платформе “1С:Предприятие”. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие” при разработке прикладных решений для “обычных” компьютеров, но пока ещё не занимался разработкой 1С-приложений, предназначенных для работы на мобильных устройствах.
7500 рублей
Программное управление обычными формами документов и справочников в УПП/КА 34
09.05.2018 9368 dima_home 9
Решение проблемы отображения интерфейса Такси на экранах с маленьким разрешением 26
06.04.2018 10501 Drak87 18