1с многострочный режим программно установить

Обновлено: 05.07.2024

Управление высотой строк табличного поля

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

Существует несколько способов установки высоты ячеек строк табличного поля :

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

При обработке события ПриВыводеСтроки() устанавливаем свойства " ВысотаЯчейки " и " АвтоВысотаЯчейки " для ячейки , отображающей значение реквизита НаименованиеПолное , при этом устанавливаем максимально возможную высоту ячейки равной 5 строкам :

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

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

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

Соглашаюсь с вами, потому что 1С я действительно знаю плохо, но я же не волшебник, я только учусь. И мне нужна ваша помощь :)

(16) Не обижайся . а объясняй, как можно подробнее, желаемую цель начинания .
(16) хорошо.
Так получается, что никто никогда не работал с табличной частью документа посредством FormEx?
(17) хорошо.
Так получается, что никто никогда не работал с табличной частью документа посредством FormEx?
ДЛЯ РАБОТЫ С ТАБЛИЧНОЙ ЧАСТЬЮ ДОКУМЕНТА НЕ НУЖНА FORMEX.
(21) а кричать не надо.
Хорошо, если не нужна, то каким образом ты предлагаешь определить формулу, которая записана в колонке, и выполнить эту процедуру, если она не является глобальной?
Вот ведь заладил. Клином на Формексе сошлось.
Будь добр расскажи человеческим языком чего ты хочешь от этой многострадальной.. тьфу. многострочной части.
(23) Она девочка .
(22) У тебя что в каждой строке тч своя формула для этой колонки?
Ты открываешь форму документа, и хочешь, чтобы пересчитывались колонки?
А просто в ПриОткрытии это сделать?
Хочешь чтобы пересчитывалось только при программном открытии? Передавай параметр в форму. Или я чего-то не понимаю?
Ну, если уж так загорелось через формекс, тогда засунь строку с Сервис.ВыполнитьПроцедуру в цикл по строкам документа.

Да (0) уже запарил(а). (25) было предложено сразу .

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

(25) я загружаю в открываемый программно документ ТЗ (только 2 колонки), надо выполнить процедуры, соответствующие формулам этих документов.
(26) каким образом это сделать?

(28) в том-то и дело, что по строкам не идет. находит только 1 строку, (т.е. по идее бы ВыбратьСТроки(), потом Пока ПОлучитьСТроку()=1 , но не получается, там еще в СП написано следующее
ПолучитьАтрибут(<?>)
Синтаксис:
ПолучитьАтрибут(<Номер>)
Назначение:
Возвращает объект объект АтрибутФормы.
Параметры:
<Номер> - номер или строка с идентификатором атрибута формы, проинициализированной методом УстановитьФорму(). . Для получение доступа к многострочной части формы необходимо в этот метод передать строку "МногострочнаяЧасть". .

Когда у вас что-то спрашивают, вы требуете код, сами же вы, когда отвечаете, просто говорите: сделай так или так. В СП тоже написано "необходимо в этот метод передать строку "МногострочнаяЧасть"", но как это сделать?? Объясните, пожалуйста. Самостоятельно разобраться не могу.

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

Этап 0. Подготовка конфигурации

Прежде всего, следует адаптировать конфигурацию 1С:Предприятия 8.1 к работе на платформе 8.2 без использования режима совместимости с 8.1. Методика перевода подробно описывается в рубрике "Адаптация конфигураций 1С:Предприятия 8.1 к работе на платформе 1С:Предприятие 8.2 без режима совместимости с версией 8.1".

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

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

Здесь возможны следующие варианты:

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

Этап 1. Выполнение общих настроек

На данном этапе разработчику необходимо:

1. Определить роли и сценарии работы пользователей (рабочие места):

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

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

  • либо все реквизиты объекта,
  • либо только некоторые реквизиты (другие недоступны пользователю с этой ролью).

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

5. Установить управляемый режим блокировок.

6. Для регистров накопления и бухгалтерии установить (проверить, что установлены) признаки разделения итогов.

7. Настроить агрегаты для соответствующих регистров накопления.

8. Рассмотреть целесообразность работы с часовыми поясами.

Этап 2. Настройка интерфейсных свойств объектов конфигурации

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

  • Установить свойство "Быстрый выбор" справочникам, для которых оно уместно.
  • Заполнить для объектов представления, синонимы объектов:
    • для объектов, имеющих управляемые формы - обязательно;
    • для остальных объектов - желательно.
    • для реквизитов объектов, которые имеют управляемые формы - обязательно;
    • для остальных объектов - желательно.
    • для документов, имеющих управляемые формы - обязательно;
    • для всех документов - желательно.

    Этап 3. Создание и настройка управляемых форм, отчетов

    На данном этапе разработчик создает управляемые формы для объектов. При этом необходимо обеспечить работу управляемых форм и в веб-клиенте.

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

    Там, где необходимо, следует настроить условное оформление.

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

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

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

    Этап 4. Настройка командного интерфейса

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

    Этап 5. Внесение изменений в программный код

    Одновременно с выполнением приведенных действий, разработчик вносит изменения в программный код. Следует определить состав общих модулей, выработать порядок их наименования. При необходимости следует провести реструктуризацию общих модулей.

    Следует учитывать следующие особенности:

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

    • Следует рассмотреть целесообразность применения новой методики записи движений при проведении документов.
    • Следует рассмотреть целесообразность отказа от обращений к "устаревшим" именам свойств и методам, например:
      • Свойство ИмяПараметровПечати,
      • Метод ПользователиWindows().

      Заполнение реквизитов нового объекта

      В платформе 1С:Предприятие 8.2 логика заполнения реквизитов объекта должна располагаться в конкретном месте – в модуле объекта в процедуре ОбработкаЗаполнения().

      Платформа 1С:Предприятие 8.1 ведет себя иначе: при вводе нового объекта не "на основании" процедура модуля документа ОбработкаЗаполнения() не вызывается.

      Поэтому логика заполнения реквизитов нового объекта может быть расположена в разных местах, например так:

      • в модуле объекта в процедуре ОбработкаЗаполнения(): заполняются реквизиты нового документа при вводе на основании,
      • в модуле формы объекта в процедурах ПриОткрытии(),ПередОткрытием() заполняются реквизиты нового объекта при любом способе создания документа (ввод на основании, копирование, "простое" создание).

      Поэтому, при переводе конфигурации на версию 8.2 необходимо проанализировать, не следует ли перенести логику заполнения реквизитов нового объекта из модуля формы (процедур ПриОткрытии, ПередОткрытием) в модуль объекта (процедура ОбработкаЗаполнения()).

      При этом следует учитывать, что ОбработкаЗаполнения() не вызывается при копировании объекта.

      Проверка заполнения реквизитов

      Следует использовать средства автоматической проверки заполнения реквизитов, предоставляемые платформой 1С:Предприятие 8.2.

      При этом следует учитывать следующее:

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

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

      Универсальные механизмы в конфигурации

      По каждому используемому механизму следует принять решение:

      • оставить, как есть (в этом случае возможно придется адаптировать существующий программный код универсального механизма чтобы исключить (снизить дублирование) программного кода,
      • использовать механизм из Библиотеки Стандартных Подсистем,
      • разработать "оригинальный" механизм.

      Этап 6. Прочее

      При переходе на версию 8.2 следует конвертировать используемые картинки в формат "png".


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

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

      Создание таблицы значений

      Как и большинство объектов встроенного языка, новая таблица значений может быть создана с помощью оператора Новый :

      Колонки таблицы значений

      Прежде чем начать работу с таблицей значений, необходимо создать структуру колонок. Каждая колонка характеризуется следующими свойствами:

      Доступ к колонкам производится через свойство Колонки объекта ТаблицаЗначений . Для добавления новой колонки используется метод Добавить():

      Для того, чтобы определить наличие колонки с нужным именем используется метод Найти():

      Перебор колонок выполняется следующим образом:

      Для удаления колонки используется метод Удалить():

      Свойства колонки таблицы значений

      Имя Тип Описание
      Имя Строка символьный идентификатор колонки, по которому к ней можно обращаться из кода
      Заголовок Строка строковое представление колонки на форме
      ТипЗначения ОписаниеТипов свойство органичивает пространство доступных значений, которые можно указать в данной колонке
      Ширина Число ширина колонки на форме (выражается в количестве символов)

      Методы коллекции колонок таблицы значений

      Вставить() Вставляет новую колонку в указанную позицию коллекции
      Добавить() Добавляет новую колонку в конец коллекции
      Количество() Возвращает количество колонок в коллекции
      Найти() Ищет колонку в коллекции по имени
      Очистить() Удаляет все колонки из коллекции
      Сдвинуть() Сдвигает колонку влево или вправо
      Удалить() Удаляет колонку из коллекции

      Строки таблицы значений

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

      Добавление и удаление строк

      Для добавления новой строки используется метод Добавить() объекта ТаблицаЗначений . Метод возвращает объект СтрокаТаблицыЗначений , с которым доступны дальнейшие манипуляции:

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

      Обратите внимание, что каждая СтрокаТаблицыЗначений ссылается на таблицу значений с помощью метода Владелец():

      Для удаления строки используется метод Удалить() объекта ТаблицаЗначений . Строку можно удалить либо передав методу непосредственно строку, либо ее индекс:

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

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

      Поиск строк

      Все методы таблицы значений:

      Вставить() Вставляет строку на указанное место
      ВыбратьСтроку() Позволяет интерактивно выбрать строку в диалоговом окне
      ВыгрузитьКолонку() Выгружает значения ячеек указанной колонки в массив значений
      Добавить() Добавлет новую строку в таблицу значений
      ЗагрузитьКолонку() Загружает значения в ячейки указанной колонки из массива
      ЗаполнитьЗначения() Заполняет ячейки указанных колонок определенным значением
      Индекс() Возвращает индекс строки таблицы значений
      Итог() Возвращает просуммированный итог по колонке таблицы значений
      Количество() Возвращает количество строк в таблице значений
      Найти() Выполняет поиск строки по значению
      НайтиСтроки() Выполняет поиск строк по указанным параметрам
      Очистить() Очищает строки таблицы значений
      Получить() Возвращает строку по ее индексу
      Свернуть() Выполняет сжатие строк и колонок таблицы значений
      Сдвинуть() Сдвигает строку вверх или вниз по таблице
      Скопировать() Создает новую таблицу значений копированием текущей
      СкопироватьКолонки() Создает новую пустую таблицу значений путем копирования колонок текущей таблицы
      Сортировать() Выполняет сортировку строк таблицы значений по указанным колонкам
      Удалить() Удаляет строку таблицы значений

      Иерархию свойств и типов значений, связанных с таблицей значений, схематически можно представить в виде дерева:

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