Имя: Пароль:
1C
1С v8
Добавление колонки в журнал документов из табличной части
0 D1sly
 
21.01.22
10:07
Доброго времени суток уважаемые. Есть журнал документов "Кассовые документы", нужно добавить в форму списка журнала новую колонку из табличной части документа. Графу я добавил, но данные из табличной части не могу передать в эту колонку, каким способом можно это сделать, куда копать?
Действия происходят в: УТ 10.3, 1С 8.3, обычные формы
1 Базис
 
naïve
21.01.22
10:12
В журнале 5 строк с 5 документами, в каждом документе 5 строк. Как ты данные всех 25 строк уместишь в 5?
2 DrShad
 
21.01.22
10:15
сделай реквизит документа строковый и в него пиши представление своих данных из ТЧ
3 D1sly
 
21.01.22
10:36
(1)Вот так хочу сделать https://ibb.co/wM3D7wk
4 Dmitrii
 
гуру
21.01.22
10:47
(3) Добавляй реквизит шапки документа. Заполняй его в ПередЗаписью значением реквизита из первой строки документа. Этот реквизит шапки и выводи в журнале.

Если ИмяТабличнойЧасти.Количество() <> 0 Тогда
  Проект = ИмяТабличнойЧасти[0].Проект;
КонецЕсли;

Ну и обработкой первоначальное заполнение этого реквизита по всем уже существующим документам сделай.
5 DrShad
 
21.01.22
10:56
(4) а если в расшифровке несколько строк будет с разными проектами?
6 Dmitrii
 
гуру
21.01.22
11:14
(5) Об этом автор должен думать сам. В шапку будет добавляться проект только из первой строки. Для однострочных документов вполне себе допустимое решение. Всё равно в подавляющем большинстве случаев ПКО заводятся без разбиения. Списком, как правило, пользуются для разделения одной оплаты по договорам, сделкам, статьям ДДС, видам (оплата/аванс). Если у автора не используется один ПКО для разбиения по нескольким проектам, то вполне нормальное решение.
А вот пихать в строковый реквизит шапки представление из списка проектов из всех строк - решение, ИМХО, корявое. Ни отбор толком не наложить, ни визуального восприятия нормального не получить.
Короче в любом случае идеального решения не будет. Это ж обычные формы.
7 D1sly
 
21.01.22
13:42
(4) Спасибо за наводку! Первый раз с обычными формами столкнулся, учусь)
8 DrShad
 
21.01.22
14:00
(7) в управляемых такого тоже не сделать как ты хотел
9 Dmitrii
 
гуру
21.01.22
14:12
(8) В колонку списка документов или журнала - не вывести. Но, например, отбирать по реквизитам табличных частей можно.
В ОФ и этого нельзя.
10 D1sly
 
21.01.22
14:14
(8) Мне подсказали, что через запрос как то можно, начал гуглить и понял, через запрос в обычных формах не получится, думал в управляемых можно
11 Ёпрст
 
21.01.22
14:18
(10) Кто сказал что не получится ?
12 Ёпрст
 
21.01.22
14:39
В свойствах журнала вешаешь обработчик ПриПолученииДанных, в коде это:


Процедура ЖурналДокументовСписокПриПолученииДанных(Элемент, ОформленияСтрок)
    МассивССылок = Новый Массив;
    Соответствие = Новый Соответствие;
    Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        МассивССылок.Добавить(ОформлениеСтроки.ДанныеСтроки.Ссылка);
        Соответствие[ОформлениеСтроки.ДанныеСтроки.Ссылка] = ОформлениеСтроки;
    КонецЦикла;
    
    Запрос= Новый Запрос("ВЫБРАТЬ
    |    ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка КАК Ссылка,
    |    ПриходныйКассовыйОрдерРасшифровкаПлатежа.Проект КАК Проект
    |ИЗ
    |    Документ.ПриходныйКассовыйОрдер.РасшифровкаПлатежа КАК ПриходныйКассовыйОрдерРасшифровкаПлатежа
    |ГДЕ
    |    ПриходныйКассовыйОрдерРасшифровкаПлатежа.НомерСтроки = 1
    |    И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка = &Ссылка
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    РасходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка,
    |    РасходныйКассовыйОрдерРасшифровкаПлатежа.Проект
    |ИЗ
    |    Документ.РасходныйКассовыйОрдер.РасшифровкаПлатежа КАК РасходныйКассовыйОрдерРасшифровкаПлатежа
    |ГДЕ
    |    РасходныйКассовыйОрдерРасшифровкаПлатежа.НомерСтроки = 1
    |    И РасходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка = &Ссылка
    |";
    Запрос.УстановитьПараметр("ССылка", МассивССылок);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Соответствие[Выборка.ССылка].Ячейки.Проект.ЦветТекста= WebЦвета.Розовый ;  
        Соответствие[Выборка.ССылка].Ячейки.Проект.Текст = Выборка.Проект ;  
    КонецЦикла;
КонецПроцедуры


Наслаждаешься, кушаешь печеньки.
Если что, аналогично можно слепить и в уф и без заполнения реквизита
13 D1sly
 
21.01.22
15:06
(12) Ой спасибо, правда я уже не в офисе, в понедельник буду пробовать. То что не получится на каком то форуме прочитал, у меня мало опыта с запросами, делал только отчеты через скд. Еще плаваю в этих вопросах)
14 Dmitrii
 
гуру
21.01.22
15:11
(13) Только надо учесть, что отбора по этому полю не будет. Только отображение.
И при большом количестве данных это может несколько затормозить работу с формой журнала.
15 D1sly
 
24.01.22
03:53
(12) Когда открываю журнал кассовые документы, сразу вылезает ошибка:
{ЖурналДокументов.КассовыеДокументы.Форма.ФормаСписка.Форма(109)}: Ошибка при вызове метода контекста (Выполнить)
    Выборка = РезультатЗапроса.Выполнить().Выбрать();
по причине:
{(8, 55)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка <<?>>= &Ссылка
https://ibb.co/RBBCWGh
16 Сергиус
 
24.01.22
04:06
Вот и выросло поколение, не знающее ОФ...по мотивам (7)
17 D1sly
 
24.01.22
04:51
Поковырялся в консоли запросов, почему то поле проект в тч документа ПКО и РКО пустое
18 Ёпрст
 
24.01.22
08:38
(15)да ё

Замени везде =&ссылка на в(&ссылка)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн