1с обычные формы объединить колонки

УФ: Размещение элементов на форме 3 в 1С

Элементы в колонках (Горизонтальная и вертикальные группы)

Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в Neti →

Продолжаем рассматривать варианты размещения элементов на форме на примере вывода реквизитов документа на форму документа, состав документа представлен на рис. 1:

Ris. 1. Rekvizity dokumenta 2

Рис. 1. Реквизиты документа

Разместим поля Организация, Подразделение, ТипПриходной, Склад в две колонки по два элемента. Для этого добавляем три группы (Группа – Обычная группа), одну горизонтальную и две вертикальные. У групп снимаем галочку у свойства ОтображатьЗаголовок, чтобы не выводилась пустая строка над элементами, или строка с заголовком, если он задан. Две вертикальные группы (Группа2 и Группа3) размещаем в горизонтальной (Группа1) (рис. 2):

Ris. 2. Dobavlenie grupp

Рис. 2. Добавление групп

Далее перетаскиваем мышкой элементы в группы, Организация, Подразделение в Группа2, а ТипПриходной, Склад в Группа3. Получаем такую форму (рис.3):

Ris. 3. Forma s elementami v kolonkah

Рис. 3. Форма с элементами в колонках

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

Ris. 4. Dobavlenie Dekoratsii dlya vyravnivaniya

Рис. 4. Добавление Декорации для выравнивания

Тогда получим форму (рис. 5):

Ris. 5. Dobavlennaya dekoratsiya na forme v polzovatelskom rezhime

Рис. 5. Добавленная декорация на форме в пользовательском режим

Источник

Как в 1С добавлять на форму списка различные колонки

service img1

Обновим 1С с гарантией сохранности базы

service img2

Поможем с 1С 24/7, без выходных

service img3

Установим сервисы 1С бесплатно

service img4

Оперативно решим любые задачи по 1С

Любой документ в 1с имеет определенную форму. Если нам необходимо ее изменить, например добавить для видимости колонку, то сделать это можно следующим способом:

1) Заходим в документ и в правом верхнем углу нажимаем на кнопку «Еще».

placeholder

2) В появившемся списке выбираем «Изменить форму».

placeholder

3) В открывшейся окне настройки формы проверяем проставленные «V» — возможно у нужного поля галочка не стоит.

placeholder

Если ее нет, то проставляем и нажимаем «Ок» (Для примера добавим в «Тип»).

placeholder

placeholder

Также можно расположить колонки в нужно порядке. Для этого повторно заходим в «Настройка формы» (п.1, 2) и воспользуемся синими стрелочками. Нужно выделить строчку, которую нужно переместить и нажимаем на нужную стрелочку («Вверх», «Вниз» в зависимости от того куда его нужно переместить колонку на форме- правее или левее).

Для примера переместим «Тип» сразу за колонкой «Номенклатура».

placeholder

placeholder

Если в списке нет нужного реквизита, то можно воспользоваться кнопкой «Добавить поля», но это работает не всегда — там где возможно кнопка будет активна.

placeholder

Для примера выведем на форму «Вид номенклатуры». Для этого открываем «Настройка формы» (п.1, 2), выбираем строчку «Номенклатура» и нажимаем «Добавить поля».

placeholder

В появившемся списке ставим галочку возле «Вид номенклатуры» и нажимаем «ОК».

placeholder

В списке «Настройка формы» появится соответствующая строчка. Нажимаем «ОК».

Источник

Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download

6a1506cbd5d99fc71939873fb5189b17 close

Полезные процедуры по работе с СКД и табличными документами (часть 1)

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

1. Объединение, скрытие, замена

Пусть требуется получить отчет следующего вида

В консоли можно получить следующий результат

bd2346f08cee7da291c3ea00cc675a7a
Далее приведены универсальные процедуры, с помощью которых можно:
1. Объединить ячейки “Бонусы” и “За проекты” в шапке отчета с помощью процедуры ОбъединтьЯчейкиВТабличномДокументе()
2. Скрыть заголовок ресурса “Сумма” с помощью процедуры СкрытьСтрокиВТабличномДокументе()

2. Процедуры по выводу табличного документа

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

3. Вывод рядом двух независимых таблиц

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

4. Установка собственного формата для табличного документа

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

Процедуры тестировались на платформе 8.3 в режиме совместимости с 8.2 и без режима совмместимости, а также на платформе 8.1.

К статье прилагаются внешние отчеты со сводным примером (запускается в любой конфигурации 8.2/8.3 на обычных или управляемых формах, также отчет на 8.1)

31d7d838cd81546e42d91e580ae97aab

Скачать файлы

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

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Почему вместо этого:

нельзя использовать Группы полей? А вместо скрытия сумм использовать макеты?

И еще наблюдение: на больших объемах данных это:

Работает значительно медленнее, чем это:

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

Сколько из трех случаев Вы сможете реализовать стандартными средствами СКД?

(11) смешные примеры) случаи 1 и 2. Вы про горизонтальные группировки не знаете что-ли?

Простой пример (вместо «Выбора» могут быть элементы справочника. Для наглядности так сделал)

Выбор когда Условие 1 тогда
«Мебель»
Когда Условие2 Тогда
«Продукты»
.
n вариантов

Конец как ГоризонтальнаяГруппировка

Потом это поле выбираете в качестве горизонтальной группировки в таблице. Еще и плюсик заработаете от того, что оно сворачиваемое и с итогами (возможно).

Случай 3 видимо не реализуем настройками СКД. Однако, следующее требование пользователя будет таким: выведите итог по виду товара. И куда вы его впихнете, позвольте узнать? От такого расположения группировок потому и отказались. Наиболее близкий вариант это поставить в параметре «Расположение полей группировок» значение «Отдельно и только в итогах».

Вообще когда вы корячите макеты СКД помните, что вы с вероятностью 99% что-нибудь сломаете. То есть не будут работать расшифровки, группировки и т.д. и т.п.

В вашем случае 1 недостаток сразу видно. В примере 1 можно вынести подразделение и сотрудника в отдельную группировку. Таблицу сделайте подчиненной сотруднику и в качестве группировки сделайте например Вид расчета. В таком случае, при количестве сотрудников от 1000 ваш отчет просто «умрет» на отрисовке макета. Будет формироваться минут 30, а вэб-морда тупо вылетит.

Да и вообще все примеры хорошо сработают лишь на небольших объемах данных. Нужно использовать механизмы СКД. Для замены текста точно УО нужно.

(12) kser87, из описания неточно понятно, что именно вы имеете ввиду. К посту 11 приложен внешний отчет. Попробуйте реализовать вашу идею в этом отчете и выложить. Чтобы можно было увидеть, что вы смогли получить требуемый результат без костылей. Можно переставлять так, как считаете правильным. Главное получить ожидаемый результат в виде готового табличного документа.

Снова ваше предположение. Вы не можете знать при каком количестве сотрудников она вылетит, т.к. вы не провели эксперимент. Почему вы решили, что 30 минут а не 30 часов? Какое значение имеет количество сотрудников [строк отчета], если обработка производится только в шапке отчета? Почему нельзя формировать табличный документ на сервере?

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

Источник

Программно создать группы конолок и колонки на форме

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

Суть дела: есть форма справочника, в ней есть таблица «ТаблицаРедактирования» нужно в эту таблицу программно добавить Колонки и разместить их в определённые группы колонок, которые также создаются программно.

Пишу следующий код

// создаём новые группы колонок
Сч = 1;
СоответствиеИменГруппировок = Новый Соответствие;
Для Каждого ТекЭлемент ИЗ ТаблицаГруппировок Цикл
Если Не ТекЭлемент.Группировка = «» Тогда
НовыйЭлемент = Элементы.Добавить(«ГруппировкаКол» + Формат(Сч, «ЧЦ=3; ЧВН=; ЧГ=»),
Тип(«ГруппаФормы»),Элементы.ТаблицаРедактирования);
НовыйЭлемент.Заголовок = ТекЭлемент.Группировка;
НовыйЭлемент.Вид = ВидГруппыФормы.ГруппаКнопок;
СоответствиеИменГруппировок.Вставить(ТекЭлемент.Группировка, НовыйЭлемент);
Сч = Сч + 1;
КонецЕсли;

// здесь всё отрабатывается правильно, в ТаблицаРедактирования добавляются новые ГруппыКолонок

// Добавляем реквизиты Формы

МассивРеквизитов = Новый Массив;

ТипыРеквизита = Новый Массив;
ТипыРеквизита.Добавить(Тип(«Число»));
ОписаниеТиповДляРеквизита = Новый ОписаниеТипов(«Число», Новый КвалификаторыЧисла(20, 4));

Сч = 1;
Для Каждого ТекНастройка из ТЗНастройкиКолонок Цикл

НовыйРеквизит = Новый РеквизитФормы(«Значение» + Формат(Сч, «ЧЦ=3; ЧВН=; ЧГ=»),
ОписаниеТиповДляРеквизита,
«ТаблицаРедактирования»,
«Значение» + Формат(Сч, «ЧЦ=3; ЧВН=; ЧГ=»),
Истина);

ИзменитьРеквизиты(МассивРеквизитов);
//Данный участок кода также отрабатывается без ошибок

// Добавляем колонки на форму

Для Сч = 1 по ВсегоРасчетов Цикл

НовыйЭлемент = Элементы.Добавить(«ТаблицаРедактированияЗначение» + Формат(Сч, «ЧЦ=3; ЧВН=; ЧГ=»),
Тип(«ПолеФормы»), РодительЭлемента); // на этой строчке система начинает ругаться (Не допустимое значение параметров)

При создании новых группировок колонок и реквизитов формы проблем не возникает. Ошибка выдаётся при попытке добавления в форму колонок
в строчке

НовыйЭлемент = Элементы.Добавить(«ТаблицаРедактированияЗначение» + Формат(Сч, «ЧЦ=3; ЧВН=; ЧГ=»),
Тип(«ПолеФормы»), РодительЭлемента); // на этой строчке система начинает ругаться (Не допустимое значение параметров)

При чём если в качестве РодительЭлемента указан путь Элементы.ТаблицаРедактирования, то всё отлично добавляется, но при этом естественно колонки добавляются непосредственно в таблицу, а нужно чтобы добавлялись в нужную группировку колонки.

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

Тип: ГруппаФормы; ТаблицаФормы; УправляемаяФорма.
Родитель для добавляемого элемента.
Если не указан, то добавляется на верхний уровень.
При этом РодительЭлемента является именно ГруппойФормы, т.е. по типу абсолютно подходит. А в чём ошибке не ясно.

Источник

Дополнительная вычисляемая колонка в табличной части

Дополнительная вычисляемая колонка в табличной части

Реализация на платформе 1С: Предприятие 8.1 (или в обычном приложении)

В начале коротко о том, как добавить дополнительную колонку в табличное поле на платформе 1С 8.1.

Предположим, что у нас есть некий документ с табличной частью “Товары” (с колонками “Номенклатура” и “Количество”) и нам нужно вывести дополнительную колонку “Цена”, которая бы содержала данные реквизита “Цена” элементов справочника “Номенклатура”, выбранных в строках табличной части.

Для этого нам достаточно добавить в форме документа новую колонку “Цена” в табличное поле, содержащее данные табличной части документа и написать следующий код в обработчике события “ПриПолученииДанных” этого табличного поля:

Хочу обратить внимание на то, что строки табличного поля обрабатываются порциями, по мере прокрутки списка.

Реализация на платформе 1С: Предприятие 8.2 (8.3 управляемое приложение)

На платформе 8.2 с использованием управляемых форм решение данной задачи потребует бóльших усилий. Это связано с тем, что за счет своей клиент-серверной ориентированности в платформе 8.2 в управляемом режиме отсутствуют некоторые привычные возможности – например, у табличного поля отсутствуют обработчики событий “ПриПолученииДанных” и “ПриВыводеСтроки”, которые мы могли бы использовать для этих целей в 1С 8.1 или 8.2 в обычных формах.

Пусть в нашей конфигурации есть документ “ВводОстатковДолга” с табличной частью “Контрагенты” (с колонками “Контрагент” и “Сумма”). В свою очередь у справочника “Контрагенты” есть реквизит “ИНН”, значение которого необходимо выводить в строках табличного поля.

[qu_spoiler title=»Примечание от ‘Капитально:» open=»yes» icon=»chevron-circle»]в статье взят неудачный пример т.к. реквизиты вынести можно получить гораздо проще, но тем не менее статья полезна для рассмотрения в учебных целях[/qu_spoiler]

Откроем управляемую форму документа, добавим новую колонку “ИНН” реквизита “Контрагенты” и перенесём её на закладку “Элементы” (для отображения в форме).

KontargentINN dobalvenie v polya tablitsy

Откроем палитру свойств поля “КонтрагентыКонтрагент” и добавим обработчик события “ПриИзменении”

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

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

Затем добавим в модуль формы документа обработчики событий “ПриОткрытии”, “ПриЧтенииНаСервере” и “ПослеЗаписиНаСервере”, в каждой из которых будем вызвать описанную ранее служебную процедуру “ОбновитьДанныеКолонкиИНН”

Всё готово. Можно посмотреть на результат.

Primer dopolnitelnoj kolonki v spiske

Статья найдена на просторах интернета

Как добавить реквизит объекта в таблицу формы

Dobavit rekvizit obekta v spisok tablitsy formy

Реклама — двигатель всеобщей дебилизации населения.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с обычные формы не сохраняются привязки
  • 1с обычные формы не растягивается форма