Как вывести реквизит табличной части в форму списка

значение из табличной части документа в форму списка

Я
   merlin_o

23.04.07 — 18:29

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

  

Партнерская программа EFSOL Oblako

   Wladimir_spb

1 — 23.04.07 — 18:31

Самое простое — сделать соответствующий реквизит документа. Не красиво, но эффективно.

   merlin_o

2 — 23.04.07 — 18:34

спасибо, попробую.

   merlin_o

3 — 24.04.07 — 12:51

реквизит я создал. но как передать ему значение из таблицы?

Возможно ли сделать через Запрос, а не через реквизит.

   PowerBoy

4 — 24.04.07 — 13:10

(0) Для чего это нужно?

Для отбора?

   merlin_o

5 — 24.04.07 — 13:15

нет. просто вывести

   yalex

6 — 24.04.07 — 13:31

(0) В событии ПриВыводеСтроки Табличного поля типа ДокументСписок :

ДанныеСтроки.ТвояКолонка = ДанныеСтроки.Ссылка.ТабЧасть.НужныйРеквизит

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

   yalex

7 — 24.04.07 — 13:37

6 + такой вывод крайне нерацционален, «жрёт» много времени, но штатных средств для вывода значений табчастей, вроде, нет

   merlin_o

8 — 24.04.07 — 15:16

Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

 ДанныеСтроки.ПолеЗаказПокупателя = ДанныеСтроки.Ссылка.Заказы.ЗаказПокупателя;

КонецПроцедуры

Заказы — табличная часть

ЗаказПокупателя — нужный реквизит

Выдает ошибку: Поле объекта не обнаружено (ЗаказПокупателя)

Может сначала нужно через какуюто функцию достать этот реквизит

   Salvador Limones

9 — 24.04.07 — 15:22

Вообще текст ставится через ОформлениеСтроки.Ячейки.<ТвоёПоле>.УстановитьТекст(

А если в ТЧ несколько строк, что должно попадать?

   asady

10 — 24.04.07 — 15:25

(0) угу сначала в поле списка реквизитТЧ пихни, потом сделай быстрый отбор по нему, сортировку. Плавали…Знаем…

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

   merlin_o

11 — 24.04.07 — 15:26

ОформлениеСтроки.Ячейки.ПолеЗаказПокупателя.УстановитьТекст(ДанныеСтроки.Ссылка.Заказы.ЗаказПокупателя);

Таже ошибка.

В таблице «Заказы» одна строка.

   yalex

12 — 24.04.07 — 15:28

(8) Извини насчёт реквизита формы, который можно сделать данными колонки я погорячился. Убери «данные» колонки, оставь только элемент управление! И в этом же обработчике пиши:

Ячейка = ОформлениеСтроки.Ячейки.ИмяКолонки;

Ячейка.УстановитьТекст(ДанныеСтроки.Ссылка.Заказы.Получить(0).ЗаказПокупателя);

Это во-первых!

Во-вторых:  в какой именно строке табличной части ты получаешь значение? В моём примере 1я строка.

   merlin_o

13 — 24.04.07 — 15:39

Заработало. Строка у меня одна.

Всем огромное спасибо.

   asady

14 — 24.04.07 — 15:45

(12) Вот чует мое сердце, что следущей темой у merlin_o будет:

как сортировать в списке доков по реквизиту ТЧ?

   yalex

15 — 24.04.07 — 15:48

(14) )ну тут ничего не поделаешь…реквизит ТЧ в поле списка не пихнёшь

   asady

16 — 24.04.07 — 15:54

(15) ну ты же подсказал как пихнуть его туда — теперь готовься….

   merlin_o

17 — 24.04.07 — 15:54

все может быть. я только начинаю изучать 1с8 и многие подводные камни мне не видны. Но yalex предложил вариант который у меня заработал. С резвизитов я чето не понял как ему передать значение, задал только тип.

  

yalex

18 — 24.04.07 — 16:13

(17) И правильно сделал что не понял! Эта фишка с реквизитами в табПоле не проходит, если реквизит не реквизит табчасти или не реквизит Объекта, который ты выводишь в список.

(16) Я в в (12) исправился), уже во 2й раз на теже грабли наступаю

Вывод значения табличной части в форму списка документа

Автор bestname, 21 июл 2015, 15:11

0 Пользователей и 1 гость просматривают эту тему.

1С:Предприятие 8.3 (8.3.5.1186)
Здравствуйте. Изучаю 1С, и столкнулся с таким вопросом.
Есть документ «Расходная накладная». В документе есть ФормаСписка и Табличная часть «Товары». В этой табличной части, есть реквизит «Сумма», где подсчитывается итоговая сумма документа.
Как сделать, чтобы этот реквизит(Сумма), выводился в Форму списка документа? Спасибо.


А это поле присутствует в динамическом списке формы.


Сделайте новый реквизит расх. накладной «СуммаДокумента». В модуле объекта в обработчике ПередЗаписью
Пропишите: СуммаДокумента=Товары.Итог(«Сумма»);
Вывести реквизит объекта в форму списка — элементарно.


Цитата: Дмитрий@ от 21 июл 2015, 15:25
А это поле присутствует в динамическом списке формы.

У меня в форме нет динамических списков. Или я не туда смотрю..

Цитата: Дмитрий@ от 21 июл 2015, 15:25
Сделайте новый реквизит расх. накладной «СуммаДокумента». В модуле объекта в обработчике ПередЗаписью
Пропишите: СуммаДокумента=Товары.Итог(«Сумма»);
Вывести реквизит объекта в форму списка — элементарно.

О да, вроде получилось. Скажите, правильно ли я сделал?
Открыл модуль объекта, и там написал:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

СуммаДокумента = Товары.Итог("Сумма");

КонецПроцедуры





Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Вывод значения табличной части в форму списка документа

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

Доброго времени суток! Столкнулся с небольшой проблемой: работаю в сервисном центре, стоит 1С: Управление сервисным центром. Без поддержки, так как пришлось многое переделать для нужд нашего СЦ. Задача следующая: есть ряд документов (в явном виде не выводятся так как их огромное количество уже давно) объедены они все в один Журнал документов (Снимок1 из вложения) В данном журнале три вида документов. я разберу задачу на примере одного называется он Прием в ремонт, в нем внутри есть Табличная часть под названием Техника клиента, а в ней всегда одна строка (думаю может это важно) там есть наименование техники из Справочника Нуменклатура и серийный номер(Снимок2 из влажения), так вот нужно чтобы в форме списка Журнала документов к каждому документу была выведена графа, которая будет отображать нуменклатуру Табличной части данного документа и графа с серийным номером данного оборудования(Пример Снимок3 из вложения). В явном виде сделать это не получится по объективным причинам, а в не явном знаний маловато. Добавлю: база файловая если важно, справочник Нуменклатура один на все, серийные номера к оборудованию из справочника добавляются из отдельного справочника СерийныеНомера, где Владельцем является Справочник Нуменклатура. Было бы неплохо изобразить на пустой базе пример с одним документом и двумя справочниками, буду очень признателен. В каком виде будет реализация мне вообще не важно, главное чтоб это не применялось к уже созданным документам а только к вновь созданным, так как база большая.

Пользователь хочет видеть в списке документов информацию из ТЧ документа. Как вариант, могу выводить только информацию по первой строке. Это практикуется? Пользователь уверяет, что всегда документ будет создаваться только с 1 строкой ТЧ (т.е. не списком).

Никогда не верь тупому юзеру! врет и делать ему нефиг, если хочется гемора, то вперед на мины :)

Чтоже там такого в ТЧ и какого документа?

Как только сделаешь — жди появления документа с двумя и более строками.

Ну а потом пользователь создаст документ с двумя строками ТЧ… Кто будет виноват?

Колонку в массив, массив в строку с разделителями=) и выводи сколько хошь. Только список тормозить будет жутко.

А лучше запрос. Да еще и не при получении данных а при выводе строки. А потом его результат циклом. И еще чего-нить, чтобы сами отказались потом.

Спасибо. Хороший вариант. Самому в голову не пришло

И еще придумал, в форме вывести внизу вторую ТЧ, в которой показывать данные по выбранному документу. А документ — Заявка на расходование средств (УПП). Хотят видеть Проект и статью затрат

Хотя в принципе можно и программно запретить «Редактировать списком»

Можно и первую. Но нужно задокументировать это, например электронным письмом от заказчика… Чтобы про вторую, третью и тд.д речи не было

Делаем реквизит шапки, который заполняется «ПередЗаписью». И только так.

ну тут вообще копипаста)) только рекзивит на форму не забудь добавить «Информация» с типом строка

Можно вывести отдельно табличную часть документа в форме списка, при выборе строки будет отображаться табличная часть документа.

вот как раз вот это «перед записью» и есть быдлокод.

В доп.реквизиты документа их. Если строка в ТЧ одна — значения копируй. Если строк в ТЧ много — записывай в значения <***> (шутка)

Тоже в голову пришло, но не хотелось бы усложнять.

>записывай в значения <***> Записть » и т.д. и т.п. и др. и пр.»…

Тэги: 1С 8

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

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


  2. Stack_G

    Offline

    Stack_G
    Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    29

    как вы себе это представляете?

    Документ1
    ТЧ:
    Ном1 Кол1
    Ном2 Кол2

    НомN КолN

    Что должно вывестись в форме списка?

  3. Выбранные номенклатуры через запятую, а количество общее (итого всех видов номенклатур)


  4. lazy

    Offline

    lazy
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29

    Самый простой метод — сделать строковый реквизит, добавить его в список документов, а при сохранении документа делать

    Док.НаименованияНоменклатур = "";
    Для каждого стр Из ТабЧасть Цикл
    Док.НаименованияНоменклатур = Док.НаименованияНоменклатур + стр.Номенклатура.Наименование+"; ";
    КонецЦикла;
    
    

  5. Stack_G

    Offline

    Stack_G
    Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    29

    Можно и так, а можно в событии «ПриВыводеСтроки» писать, но насколько это быстро будет? все таки обращение к ТЧ документа…
    А вообще, это как-то не серьезно… если у нас ну хотя бы 20 позиций… Какой длины будет строка и нужна ли она нам такая?
    Если нужны какие-то пометки, то проще в комментарий записать…

  6. супер, большое спасибо :unsure:


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

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

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

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

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

Добавим на форму списка документов колонку со значением статуса приходной, статус приходной находится в регистре сведений. Открываем форму списка документа пр_Приходная. Если формы списка еще нет, то нажимаем значок лупы на вкладке Формы окна свойств документа (рис. 2):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 2. Создание формы списка документа

В открывшемся окне Конструктор формы документа нажимаем Далее > и выбираем поля, которые хотим вывести на форму (поля — это реквизиты и табличные части документа), нажимаем Готово. Открывается окно формы списка документа.

В форме списка документа открываем свойства реквизита Список (правой кнопкой мышки — Свойства), в окне Свойства ставим галочку у свойства Произвольный запрос (рис. 3):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 3. Свойства реквизита формы Список

После установки свойства Произвольный запрос состав свойств раздела Объект изменится (рис. 4):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 4. Состав раздела Объект окна Свойства

Нажимаем на гиперссылку Открыть свойства Настройка списка (рис. 4). Открывается окно Динамический список (рис. 5):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 5. Окно Динамический список

Добавляем в запрос текст для получения статуса приходной из регистра сведений. В примере используется регистр сведений пр_СтатусПриходной со значением свойства Периодичность — В пределах дня, состав регистра представлен на рис. 6:

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 6. Состав регистра с данными о статусе приходной

Изменить запрос в окне Динамический список можно нажав на кнопку Конструктор запроса… или можно сразу написать нужный текст в поле Запрос (рис. 7):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 7. Измененный запрос

Текст запроса:

ВЫБРАТЬ
                Документпр_Приходная.Ссылка,
                Документпр_Приходная.ПометкаУдаления,
                Документпр_Приходная.Номер,
                Документпр_Приходная.Дата,
                Документпр_Приходная.Проведен,
                Документпр_Приходная.Организация,
                Документпр_Приходная.ТипПриходной,
                Документпр_Приходная.Склад,
                Документпр_Приходная.Подразделение,
                Документпр_Приходная.Ответственный,
                Документпр_Приходная.Комментарий,
                пр_СтатусПриходнойСрезПоследних.Статус
ИЗ
                Документ.пр_Приходная КАК Документпр_Приходная
                                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.пр_СтатусПриходной.СрезПоследних КАК пр_СтатусПриходнойСрезПоследних
                                ПО пр_СтатусПриходнойСрезПоследних.Приходная = Документпр_Приходная.Ссылка

Важно проверить, что в поле Основная таблица окна Динамический список указан нужный документ (рис. 7), иначе, если поле будет не заполнено, то в форме списка документов не будет возможности добавлять новые документы и открывать существующие (и не будет привычных кнопок Создать, Создать копированием и т.п.). Нажимаем ОК. Теперь в составе реквизита Список те поля, которые были выбраны в запросе (рис. 8):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 8. Состав реквизита Список

Перетаскиваем новое поле Статус из вкладки Реквизиты на вкладку Элементы в состав элемента Список (рис. 8). И размещаем поле Статус на вкладке Элементы после полей Дата, Номер (рис. 9):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 9. Размещение поля Статус

У реквизитов (на вкладке Реквизиты) в составе динамического списка можно отметить свойство Использовать всегда (рис. 8). Это нужно, когда поля должны быть в составе динамического списка в любом случае, даже если они не будут добавлены на форму как элементы, например, будут использоваться в дальнейшем в коде модуля формы списка документа.

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

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 10. Новая колонка формы списка

На чтение 5 мин Просмотров 2.8к. Опубликовано 02.11.2021

Содержание

  1. Остатки в списке документов
  2. Неверный путь
  3. Оптимальное решение
  4. Обращайте внимание

Рассмотрим задачу, когда нужно вывести дополнительные реквизиты и сведения в общем списке элементов. Рассмотрим на примере конфигурации УТ 11, в справочник Номенклатура добавлен дополнительный реквизит Артикул клиента.

Открываем список элементов справочника Номенклатура, выбираем меню Все действия – Изменить форму… (рис. 1):

Рис. 1. Все действия – Изменить форму…

В открывшемся окне Настройка формы у Списка номенклатуры находим поле Ссылка, выделяем его и нажимаем Добавить поля (рис. 2):

Рис. 2. Добавление полей

Далее в открывшемся окне Выберите поля для размещения в форме выбираем нужный дополнительный реквизит Артикул клиента и нажимаем ОК (рис. 3):

Рис. 3. Выбор дополнительного реквизита

Поле Артикул клиента появляется на форме Настройка формы, можно переместить его, нажимая на стрелочки Вверх, Вниз. После выбора позиции нажимаем ОК (рис. 4):

Рис. 4. Дополнительный реквизит в списке полей

В списке Номенклатуры появилась колонка с дополнительным реквизитом Артикул клиента (рис. 5):

Рис. 5. Новая колонка в списке

Можно выгрузить в файл получившийся список, меню Все действия – Вывести список… (рис. 6):

Остатки в списке документов

Решим следующую задачу: в списке документов «Заказы поставщику» нам необходимо добавить новую колонку «Остаток по заказу», которая будет отображать остаток для документа в регистре накопления «Заказы поставщику» на текущую дату.

Реализовать это нужно в конфигурации «Управление производственным предприятием» версии 1.3.

Неверный путь

Рассмотрим самый «очевидный» путь, он же самый простой. Большинство начинающих программистов делают именно так. У табличного поля формы, которое привязано к реквизиту формы с типом «ДокументСписок» есть событие «ПриВыводеСтроки». В нем напишем Запрос к остаткам по заказу для выводимой строки и полученный результат присвоим ячейке текущей строки в колонке «Остаток». Вот так будет выглядеть код обработчика события «ПриВыводеСтроки»:

Дело сделано! Задача решена! Но! Событие «ПриВыводеСтроки» вызывается для каждой строки отдельно. То есть, если в список выводится 30 строк, то запрос будет формироваться столько же раз! Может есть другой путь?

Оптимальное решение

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

Результат работы такой же, как и для варианта с использованием события «ПриВыводеСтроки», но есть одно НО.

Обращайте внимание

Самое главное отличие заключается в скорости работы. Вот сравнение времени выполнения для обоих вариантов решения задачи:

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

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

Задача:
Производство. Вахтовый метод работы, сменные графики, когда вахтовый цикл составляет 1 месяц, 2 месяца и 3 месяца. Территория — местность приравненная к районам крайнего севера (МСК), со всеми вытекающими последствиями для учета. По спец. оценке условий труда (СОУТ) количество дней отпуска будет изменяться в зависимости от класса «вредности». Этот факт мы также обязаны предусмотреть при составлении графика. А именно будет изменяться количество дней оплачиваемого отдыха за работу сверх нормы. Итак, условий много. Было решено создавать графики с учетом всех условий, максимально приближено к реальным. Ежемесячные особенности, к примеру изменения дат и количества дней в пути, корректировать индивидуальными.
На выходе получили более 50 графиков работ. Встал вопрос как их идентифицировать при приеме и переводе сотрудников. Заказчик поставил задачу разработать внутренние нормативные документы для упрощения работы кадровой службы. Начали описывать. Договорились что для информативности унифицируем названия графиков. Но по факту этого оказалось недостаточно. Очень хотелось иметь ещё и номер. Структура элемента справочника Графики работы сотрудников к нашему разочарованию не имеет нумерации.

Я пошла искать подобные темы. Форумчане в голос твердили что без снятия конфигурации с поддержки не обойтись. Вот пример такой темы: https://buh.ru/forum/forum18375/topic80453/

Но на моем проекте жёсткое условие, конфигурацию с поддержки не снимать. Подумав пару часов, нашла решение. Применила дополнительные реквизиты и настройки списка.

Решение:

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

Как видно на рисунке выше, дополнительный реквизит самый простой, тип строка.

2. Для удобства переместила доп. реквизит на форме элемента справочника вверх

3. В форме списка справочника — Все действия (или «Ещё», если работаете в режиме Такси) — Изменить форму. Добавим на форму поле «Ссылка»

4. Теперь идем в Настроить список (там же, во «Все действия») Условное оформление — Добавим текст, но выберем не Строка, а Поле компоновки данных — ДополнительныеРеквизиты.Значение

5. В качестве оформляемого поля выбираем Ссылка

6. Сохраняем настройки. При необходимости, передаем свои настройки другим пользователям. И радуемся обновленному списку справочника

Буду рада если кому-нибудь пригодится такое решение.

  • Распечатать

Оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(0 голосов, среднее: 0 из 5)

Поделитесь с друзьями!

Понравилась статья? Поделить с друзьями:
  • Как посмотреть банковские реквизиты сотрудника в 1с
  • Как выглядит готовый бизнес план для малого бизнеса
  • Как посмотреть время работы компьютера на виндовс 7
  • Как посмотреть код клиента в сбербанк бизнес онлайн
  • Как посмотреть мои реквизиты в банк онлайн сбербанк