Как в форме списка 1с изменить реквизит

Обновлено: 08.07.2024

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

1. Быстрая сортировка данных

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

2. Быстрая сортировка данных по нескольким столбцам одновременно.

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

3. Установка периода

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

4. Быстрый отбор по текущему значению

Если вам нужно быстро отобрать данные по какому-то значению, то достаточно кликнуть правой кнопкой по этому элементу в списке и выбрать пункт «Найти».

5. Поиск по текущей колонке.

Далее можно включить расширенный поиск по выбранной колонке. Для этого в контекстном меню нужно выбрать пункт Расширенный поиск.

6. Вывод списка

После установок отбора и сортировки списка, вам может понадобиться вывести полученные результаты на печать или сохранить их в файл. Для этого нужно нажать на кнопку « Ещё » и выбрать пункт « Вывести список ». В открывшейся форме настроек, можно флажками указать, какие именно колонки будут показаны в списке, который мы будем выводить на печать.

7. Изменение формы (настройка порядка и видимости колонок)

Для настройки формы нажмите на кнопку еще, и далее выберете пункт Изменить форму . В открывшейся форме настройки, можно управлять видимостью колонок, менять их местами, объединять их в группы и даже добавлять новые. Колонкам можно задавать собственные заголовки, менять их стиль и размеры.

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

На этом пока все. Полный текст статьи можно прочитать в разделе Приемы работы с 1с .

Подписывайтесь на канал и наши группы в социальных сетях, чтобы не пропустить новые публикации.

Часто требуется внести изменения в типовые формы объектов (документов, справочников, журналов, обработок и т.д.)
Есть несколько методов решения этих задач:

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

- Создавать элементы формы программно в общем модуле. Проблем с обновлением на новый релиз не будет. Рассмотрим данный метод.

В типовых конфигурациях в формах объектов в процедуре ПриСозданииНаСервере есть обращение к общему модулю СобытияФорм.ПриСозданииНаСервере



Далее идет обращение к общему модулю МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере


В этом модуле процедура ПриСозданииНаСервере пустая. Тут и добавляем ссылку уже на наш модуль (не типовой модуль).

Доработка_ФормаПриСозданииНаСервере.ИзменитьФорму


В этой процедуре разбиваем формы по объектам и названиям форм.

Для удобства можно добавлять отельные общие модули для каждого объекта.


Тут редактируем запрос в динамическом списке. Методом СтрЗаменить. Добавляем левое соединение, добавляем новое поле в выборку запроса.

Программно добавляем колонку. ПутьКДанным указываем наша новое поле, которое мы добавили в запрос "Список.Д_ЕстьФайлы".

В результате появляется заполненная колонка.


Еще для примера приведу добавление "полей ввода" на форму.

Проверял на конфигурации 1С:Комплексная автоматизация 2

Платформа 1С:Предприятие 8.3 (8.3.13.1644)

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

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

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

очень спорная мысль. с чего вы решили, что не будет? в последних релизах ЗУП, УТ, ЕРП разрабы так лихо выпиливают таблицы в метаданных и добавляют новые, что упор на модификацию форм посредством кода скорее ущербен, чем удобен.

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

дело вкуса и . лени

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

к чему тс было балаболить о том, что весьма условно?
а так да, все относительно и я же написал

(3)Так там и БСП будет более ранних версий - где таких общих функций может и не быть вовсе, или их применение в формах тоже будет сведено к минимуму - так что большинство форм не будет их вызывать! (7) Такие вызовы общих модулей используются уже с БСП 2, конечно не в таком специальном виде как в публикации через общие модули " СобытияФорм ", но в подавляющем большинстве форм имеются вызовы общих модулей других подсистем (например, "версионирование данных", "доп. отчетов и обработок"), которые в принципе можно использовать по аналогии с описанным способом - в них также доступен контекст вызываемой формы (вроде что-то похожее использовалось даже в УТ 10).
В принципе все это решается еще проще - созданием подписки на событие получения формы менеджеров всех объектов, в которой можно переопределить поведение всех необходимых форм объектов. событие получения формы менеджеров всех объектов, в которой можно переопределить поведение всех необходимых форм объектов.
Вот тут подробнее. Сколько не смотрел я это событие - так ничего толкового из него не вынес - событие срабатывает в серверном контексте, причём контекст объекта формы не доступен - максимум что там можно - только подменить один путь к форме на другой (читай одно имя вызова формы, другим) - и всё :-( фигня фигней - конечно в ряде случаев может быть полезно - когда Вы делаете свою форму - то её можно насильно подсовывать вместо других - анализируя путь исходного вызова формы. Но менять именно саму форму в этом событии совсем нельзя! (11) Вы правы, поработать с формой через подписку не получится, погорячился, а жаль ;( (3) три года назад поднимали совместимость с 8.1 на 8.2. А затем я поднял последовательно до 8.3.5. Тогда только 8.3.8 еще была.
Пару дней работы и все переписано грубо говоря, так что долго это наверно пока УПП поддерживается, КА уже сдулось. Пару лет и никто про это не вспомнит! (15) Далеко не все хотят возиться с доработками (или же это нецелесообразно в краткосрочной перспективе, или же не хватает соответствующей компетенции), необходимыми для отключения в конфигурации режима совместимости со старыми версиями платформы, бывает это даже связано с тем, что у специалиста нет понимания и уверенности в том, что конфа будет работать также стабильно и без "глюков" как и до отключения совместимости, так что думаю в старых конфах этот метод просуществует еще долго. (16) а по поводу статьи. Давно была статья, как вести доработку в типовых. Просто наверно про нее уже забыли. А тут лишь кусочек, единственное чуть больше примеров как писать этот код. Но в книжке разработчика все написано и так.

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

Общий модуль "СобытияФорм" есть даже далеко не во всех типовых конфигурациях на УФ (он не входит в состав БСП), и даже там где есть -
не везде вызывается из форм. В итоге приходится вклинивать функцию редактирования формы сразу в несколько разных обработчиков (в основном из модулей БСП, но и в некоторые специфичные для конкретной конфигурации и раздела учета - например для бухгалтерского учета). И делать проверку - обработана форма уже или ещё нет - т.к. в некоторых формах разные обработчики могу вызывать повторно. Это всё я уже реализую в опубликованном тут моём решении .

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

Ну и главное - такая модификация элементов форм работает ровно до момент, пока не нужно связывать с программно добавленными элементами обработчики событий - вот тут наступает полная трабла - т.к. обработчик события можно назначить только из модуля формы ("спасибо" ужасное фирме 1С за такое ограничение).

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

То, вот, с обработчиками таких событий как, например, "ПриИзменении" или "ОбработкаВыбора" - вот тут беда. без модификации формы или применения расширений - никак не обойтись!

Дата публикации 04.10.2019

Использован релиз 3.0.73

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

Рассмотрим механизм группового изменения реквизитов на примере изменения покупателя в документах "Счет на оплату" (реквизит "Контрагент"):

  1. Раздел: Продажи – Счета покупателям.
  2. Выделите в списке документы (рис. 1), у которых необходимо изменить значение реквизита, правой кнопкой мыши откройте контекстное меню и выберите команду "Изменить выделенные . ". Чтобы выделить несколько документов, нажмите и удерживайте на клавиатуре клавишу Shift (для выбора документов в одном диапазоне) или Ctrl (для выбора отдельных документов) и отмечайте мышью нужные документы.
  3. В открывшейся форме "Изменение выделенных элементов" на закладке "Реквизиты" (рис. 2) найдите реквизит, который подлежит изменению (в нашем примере "Контрагент"), и установите флажок в колонке .
  4. В колонке "Новое значение" (рис. 2) укажите новое значение реквизита. Если необходимо задать пустое значение, то нужно включить флажок в колонке , а колонку "Новое значение" оставить незаполненной. Одновременно можно менять несколько реквизитов.
  5. Обратите внимание, что все реквизиты следует менять с большой осторожностью, а некоторые вообще не стоит менять:
    • если изменить реквизиты табличной части документа / справочника (на закладках формы "Изменение выделенных элементов", отличных от закладки "Реквизиты"), то новое значение будет подставлено во все строки табличной части документа / справочника;
    • если изменить цифровой реквизит документа / справочника (в том числе из табличной части), то реквизиты, зависящие от измененного, не будут пересчитаны;
    • если изменить реквизит документа / справочника (в том числе из табличной части), который зависит от других реквизитов (например, договор зависит от контрагента и организации), то будет нарушена корректность данных и ссылочная целостность информационной базы.
  6. В списке реквизитов в форме "Изменение выделенных элементов" могут быть реквизиты, по умолчанию недоступные для изменения и отображающиеся серым цветом. Это "ключевые" реквизиты, которые могут повлиять на другие объекты (списки, документы, справочники и др.), поэтому они защищены от случайных изменений. При попытке ввода новых значений для этих реквизитов программа предлагает их разблокировать. Если это необходимо, подтвердите свой выбор по кнопке "Да".
  7. По кнопке "Изменить реквизиты" изменения будут сохранены, а проведенные документы будут перепроведены (в примере на рис. 1 в колонке "Контрагент" – первоначальное значение покупателя, на рис. 3 – значение после изменения).




Дополнительно в форме "Изменение выделенных элементов" можно (рис. 4):

  1. С помощью кнопки "Ранее измененные реквизиты" выбрать настройки группового изменения, которые применялись для данного списка ранее.
  2. С помощью кнопки "Дополнительные параметры" настроить определенные условия по изменению объектов:
    1. Флажок "Изменять в транзакции" включает обработку данных в транзакции. Это означает, что если в процессе сохранения не удалось сохранить один из объектов по каким-либо причинам (например, потому что объект редактируется в это же время другим пользователем), то будут отменены изменения во всех выбранных объектах. По умолчанию флажок "Изменять в транзакции" включен.
    2. Флажок "Прерывать по ошибке" включен по умолчанию. В этом случае если сохранение объекта по каким-либо причинам невозможно, программа выдаст предупреждение и предложит продолжить изменение оставшихся объектов либо прервать обработку для выяснения причин проблемы. Если флажок не включен (это возможно при снятом флажке "Изменять в транзакции") и при этом один из объектов не удалось сохранить, то такой проблемный объект будет пропущен, а обработка остальных данных будет продолжена.


    Смотрите также

    Сегодня очень важная тема - Формы. В платформе 1С форма - это важный компонент, который присутствует везде.

    Что такое форма?

    Прежде чем отвечать на этот вопрос, давайте представим вот что. Представьте перед собой чистый лист бумаги формата А4, на котором ничего нет вообще. Этот лист - это чистая форма. чистая она до того момента пока мы на ней что-то не нарисуем.

    Взяли карандаш и нарисовали на нем или написали свои ФИО - это мы начали заполнять форму, и, таким же образом продолжаем ее заполнять. Вот и в платформе почти так же.

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

    На форме можно помещать разнообразные элементы: поле ввода, поле вывода, кнопки, картинки, диаграммы и так далее.

    В платформе 1С очень много всевозможных форм и со временем мы с ними познакомимся, но пока нам важны только две формы: "Форма элемента" и "Форма списка ".

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

    Давайте вспомним предыдущий урок, в котором мы создавали справочник и потом элементы в нем.

    Откройте пользовательский режим и зайдите в справочник, который создали на прошлом занятии (Рисунок 1).

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

    Нажмите на кнопку "Создать" и у вас откроется окно (Рисунок 2).

    Посмотрите на рисунок 2, там есть маленькое окно, которое выделено красным прямоугольником. Это окно и есть Форма элемента. Почему? Потому что мы нажимаем на кнопку "Создать", а это значит мы даем команду платформе, что необходимо создать элемент, поэтому мы создаем элемент и от этого она называется формой элемента.

    А где же Форма списка?

    Закройте это окно и посмотрите на рисунок 3. Все, что находится в желтом прямоугольнике, это и есть форма списка. Форма списка появляется сразу, как только мы заходим в справочник. Как только нажали на справочник, так сразу же видим список всех элементов, от этого она и называется формой списка.

    Как только мы создаем элемент в справочнике, так это сразу же Форма элемента.
    Как только заходим в справочник и видим список, так это сразу Форма списка.

    Хорошо, разобрались где они в пользовательском режиме, но как же они там появляются, если мы их не создавали в режиме разработчика, а только создали справочник. Как и где их найти в режиме разработчика, а самое главное - почему они сами появляются? Давайте разбираться!

    Зайдем в режим разработчика и откроем наш справочник. Перейдем на вкладку "Формы" (Рисунок 4).

    У справочника 5 форм, но мы пока работаем с двумя: форма элемента и форма списка.

    Посмотрите на рисунок 4, здесь перечень всех возможных форм и все поля там пустые. Так откуда же формы? Это очень хороший и нужный вопрос! А ответ простой - платформа разработана таким образом, чтобы при создании справочника (объекта) мы могли сразу запустить и вести автоматизацию. Как только вы создаете какой-то объект, платформа автоматически сама добавляет к нему стандартную форму, от этого при запуске они у нас сразу и существуют!

    Возникает тогда вопрос: "А зачем тогда нужна вкладка Формы, если она все сама делает?". Ответ тоже прост - платформа может делать только что-то простое, а если необходимо сделать что-то сложное, то необходимо создавать уже свою форму и работать с ней.

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

    Давайте начнем с простого и разберемся в том, почему нас может не устраивать стандартная форма?

    Откройте в пользовательском режиме справочник и посмотрите на форму списка, она в виде таблички, где первый столбец - это Наименование, а второй Код (другими словами Код - это номер по порядку). Но в нашем понимании все должно быть наоборот, сначала номер, а потом перечисление. Вот и нашли причину! Нас это не устраивает. Если что-то не устраивает в отображении на стандартной форме, то необходимо создавать свою форму. Для этого переходим в режим разработчика, открываем справочник и переходим на вкладку "Формы" (Рисунок 5).

    Читайте также: