![]() |
![]() |
![]() |
|
Как же всё-таки вывести значения реквизита в табличную часть документа? | ☑ | ||
---|---|---|---|---|
0
Russkiy
28.04.10
✎
16:36
|
"...Так я жду ответа на поставленный мной вопрос относительно Шпака" ("Иван Васильевич меняет профессию", управдом Бунша Иван Васильевич)
Привет, ребята! Пару дней назад попросил помощи у форума по нижеизложенной проблеме. Получил несколько дельных советов (спасибо добрым людям), но воспользоваться ими не могу, поскольку ответы рассчитаны на более или менее продвинутого 1С-ника, а я - чайник чайником! :) Характер этого форума таков, что нужно ковать железо, пока горячо. Чуть протянул время - и поднятая тема затёрлась и ушла на задний план, оставшись без внимания посетителей... Поэтому моя проблема так пока и не решилась, и я опять выхожу сюда "с протянутой рукой"... :) У меня в конфигурировании версии 8.1 (релиз 8.1.14.15) такое затруднение. Мне нужно, чтобы в любом документе, содержащем набранный тем или иным способом список товарного состава, можно было видеть определённые реквизиты товара. Конкретно: мой товар - книги, для идентификации его элементов нужно ориентироваться на несколько его признаков (название, автор, издательство и т. д.). В справочниках все эти реквизиты уже есть и видны. При подборе номенклатуры в документ они также видны. А вот в самих документах мне не удаётся сделать их видимыми. Сделано следующее в документе "Счёт на оплату покупателю": - в реквизитах табличных частей документа создан реквизит "Автор"; реквизит не индексируется; тип данных - СправочникСсылкаАвторы; - в форме "ФормаДокумента" создана одноимённая колонка; данные - Автор (т. е., как я понимаю, ссылка на соответствующий реквизит, созданный шагом ранее); элемент управления - поле ввода; включены флажки "Доступность", "Видимость", "Только просмотр; (реквизит нужен в документе только для контроля товарной позиции). Мои ожидания: хочу видеть автора книги по той или иной позиции, введённой в документ. При этом данные должны браться из карточки товара Справочника номенклатуры. Фактический результат: колонка в документе появилась, но при заполнении последнего номенклатурой значений этого реквизита нет, т. е. колонка остаётся пустой, хотя в справочниках значения есть. Вопрос: как заставить значения этого реквизита появляться в назначенной колонке документа? Ребята посоветовали поработать с модулем Основной формы, с процедурой "ПриПолученииДанных". Кроме того, дали ссылку "Книга знаний: Книга знаний: v8: Дополнительная вычисляемая или текстовая колонка в списке Пройдя по ссылке, я конечно нашёл интересную информацию, и в конце концов попытался в модуле сделать следующее: Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок) РаботаСДиалогами.УстановитьКартинкиВСтрокахТЧ(ОформленияСтрок, Неопределено, мКартинкаНаборКомплект, Ложь); // Вывод данных из справочников Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл СамаЯчейка = ОформлениеСтроки.Ячейки.Автор; СамаЯчейка.ОтображатьТекст = Истина; СамаЯчейка.Текст = "СправочникСсылка.Номенклатура"; КонецЦикла; КонецПроцедуры В результате получил следующее: в табличных данных в колонке "Автор" по каждой введённой позиции вижу значение "СправочникСсылка.Номенклатура". Оно и понятно, поскольку здесь присутствуют кавычки. Пробовал ввести без них - при обновлении конфигурации выпадает сообщение об ошибке: {Документ.СчетНаОплатуПокупателю.Форма.ФормаДокумента(3062,24)}: Переменная не определена (СправочникСсылка) СамаЯчейка.Текст = <<?>>СправочникСсылка.Номенклатура; В статье, открывающейся по вышеприведённой ссылке, отмечается, что "Обычно колонка должна быть рассчитываемой, или зависимой от данных, поэтому задействуется второй параметр ДанныеСтроки. Этот механизм можно использовать для отображения остатков товаров в форме подбора, текущих цен, долга контрагента, другой информации по строкам." А как задействовать параметр ДанныеСтроки? Подскажите, пожалуйста, кто в курсе, что я не так делаю и как нужно сделать, чтобы всё заработало как мне нужно. Заранее весьма признателен. |
|||
1
Живой Ископаемый
28.04.10
✎
16:40
|
СамаЯчейка.Текст = Оформление.ДанныеСтроки.Номенклатура; ?
|
|||
2
Russkiy
28.04.10
✎
16:41
|
P.S. Вот данная мне в вышеизложенных мытарствах ссылка:
Книга знаний: v8: Дополнительная вычисляемая или текстовая колонка в списке |
|||
3
73
28.04.10
✎
16:43
|
(1)+ или может: Оформление.ДанныеСтроки.Номенклатура.Автор
ЗЫ. Реквизит ТЧ можно было не создавать. |
|||
4
Russkiy
28.04.10
✎
16:45
|
...Непонятно. При копировании она перестаёт быть ссылкой и становится обычным, да к тому же бесполезным текстом. А как же сохранить ссылку?..
|
|||
5
Живой Ископаемый
28.04.10
✎
16:48
|
2(4) зачем?
|
|||
6
ptiz
28.04.10
✎
16:48
|
(4) Ссылка на что?
|
|||
7
Mitriy
28.04.10
✎
16:49
|
кто тут?
|
|||
8
Живой Ископаемый
28.04.10
✎
16:49
|
при копировании чего?
Ссылка на что? |
|||
9
73
28.04.10
✎
16:49
|
(4) Ты сам сказал, что Автор - реквизит Номенклатуры. Достаточно показать.
|
|||
10
Живой Ископаемый
28.04.10
✎
16:51
|
2(4) Эта ссылка тебе всегда доступна через номенклатуру.. а номенклатура - всегда ссылка. поэтому ты и затеял показывать а не заставлять пользователя вводить заново.
|
|||
11
Russkiy
28.04.10
✎
16:55
|
Ребята, что касается ссылки - я попытался её вставить в этот пост из прежнего, чтобы всякий желающий мог увидеть тот вспомогательный материал, который мне был рекомендован для решения проблемы. А простое копирование приводит к тому, что ссылка перестаёт быть ею... Ну да Бог с ней.
Я только что попробовал варианты "Оформление.ДанныеСтроки.Номенклатура" и "Оформление.ДанныеСтроки.Номенклатура.Автор", как мне посоветовали уважеамые Живой Ископаемый и 73. Но 1С выдаёт то же сообщение об ошибке, которое я привёл выше... |
|||
12
73
28.04.10
✎
16:57
|
(11) У тебя в тексте не Оформление, а ОформлениеСтроки.
|
|||
13
73
28.04.10
✎
16:58
|
(12)+ СамаЯчейка.Текст = ОформлениеСтроки.ДанныеСтроки.Номенклатура.Автор;
|
|||
14
Шапокляк
28.04.10
✎
16:58
|
"Сделано следующее в документе "Счёт на оплату покупателю":
- в реквизитах табличных частей документа создан реквизит "Автор"; реквизит не индексируется; тип данных - СправочникСсылкаАвторы; - в форме "ФормаДокумента" создана одноимённая колонка; данные - Автор (т. е., как я понимаю, ссылка на соответствующий реквизит, созданный шагом ранее); элемент управления - поле ввода; включены флажки "Доступность", "Видимость", "Только просмотр; (реквизит нужен в документе только для контроля товарной позиции). " то есть в счете в табличной части есть реквизит Автор? В форме надо не колонку добавлять тогда, а нажать пункт Форма - Размещение данных, т.е. колонка должна отображать реквизит табличной части. Следующий вопрос - как в этот реквизит попадают данные. В обработчике события изменения номенклатуры надо менять и этот реквизит, выполняя нечто типа: СтрокаТЧ.Автор=СтрокаТЧ.Номенклатура.Автор И будет счастье. Впрочем, сама идея такого показа через заполнение реквизита ТЧ сомнительна. |
|||
15
borozavr
28.04.10
✎
17:09
|
Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ЗаполнитьКодАртикул(КолонкиТЧТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.Номенклатура); КонецПроцедуры Процедура ЗаполнитьКодАртикул(КолонкиТабличнойЧасти, ЯчейкиСтроки, Товар) Если Не ЗначениеЗаполнено(Товар) Тогда ЯчейкиСтроки.ШтрихКод.УстановитьТекст(""); Иначе ЯчейкиСтроки.ШтрихКод.УстановитьТекст(Товар.ОсновнойШтрихКод); КонецЕсли; КонецПроцедуры //ЗаполнитьКодАртикул() Убираешь реквизиты табличной части, щелкаешь на табличной части, добавляешь колонку с идентификатором, например "ШтрихКод" и прописываешь код типа как выше |
|||
16
Живой Ископаемый
28.04.10
✎
17:11
|
2(15) он сейчас скопирует
"ЯчейкиСтроки.ШтрихКод.УстановитьТекст(Товар.ОсновнойШтрихКод);" в свой код и опять скажет что у него таже самая ошибка... |
|||
17
borozavr
28.04.10
✎
17:12
|
Надеюсь сообразит, что надо типа Товар.Автор
|
|||
18
Point
28.04.10
✎
17:20
|
(0) А, что за конфигурация (БП,УПП ....)?
|
|||
19
Russkiy
28.04.10
✎
17:24
|
Ребята, насчёт ссылки: я попытался из прежних постов вывести сюда ссылку, данную мне в качестве вспомогательного материала для решения моей проблемы. А простое копирование приводит к тому, что ссылка превращается в текст. Ну да Бог с ней...
Я только что попробовал, следуя советам уважаемых "Живой Ископаемый" и "73", ввести в код модуля "Оформление.ДанныеСтроки.Номенклатура" и "Оформление.ДанныеСтроки.Номенклатура.Автор". К сожалению, опять при попытке обновления конфигурации выдаётся сообщение об ошибке, приведённое выше... |
|||
20
73
28.04.10
✎
17:26
|
Де жа вю?
|
|||
21
Russkiy
28.04.10
✎
17:31
|
Да нет, до Де жа вю ещё не дошло... Просто что-то зависло на связи, и я, не видя появившегося сообщения, повторил его немного погодя. Так и получилось...
|
|||
22
73
28.04.10
✎
17:33
|
А (13) помогло?
|
|||
23
Skylark
28.04.10
✎
17:39
|
да... "вот кол, на колу мочало..."
Ну давай с самого начала - бери исходную базу, открывай в конфигураторе форму документа, щелкай правой кнопкой на табличной части и жми "Добавить колонку" |
|||
24
Skylark
28.04.10
✎
17:40
|
В конце табличной части должна появится Колонка1
Сделал? |
|||
25
Russkiy
28.04.10
✎
17:45
|
Эту колонку я сделал уже давно, и наименовал её "Автор"
|
|||
26
Skylark
28.04.10
✎
17:49
|
Отлично, теперь переходи в процедуру события табличной части
"ТоварыПриВыводеСтроки" или как там у тебя табличная часть называется? |
|||
27
Skylark
28.04.10
✎
17:50
|
есть такая процедура?
|
|||
28
Skylark
28.04.10
✎
17:51
|
и в этой процедуре добавляй код
ОформлениеСтроки.Ячейки.Автор.УстановитьТекст(ДанныеСтроки.Номенклатура.Автор) |
|||
29
Skylark
28.04.10
✎
17:51
|
Собственно всё
|
|||
30
Skylark
28.04.10
✎
17:55
|
и вот этого не надо:
- в форме "ФормаДокумента" создана одноимённая колонка; данные - Автор (т. е., как я понимаю, ссылка на соответствующий реквизит тупо щелкнуть правой кнопкой - добавить колонку, имя колонки исправить с Колонка1 на Автор - и ВСЁ! |
|||
31
Russkiy
28.04.10
✎
17:59
|
Srylark! Всё, похоже, получилось! Даже не знаю, как Вас благодарить... Огромное Вам спасибо!
Впрочем, всех остальных участников этого "симпозия" я также сердечно благодарю за участие и отзывчивость. Есть у нас, очевидно, ещё порох в пороховницах, то бишь добрые люди, готовые прийти на помощь. Дай вам Бог всем всяческих благ - земных и неземных! Пока, ребята! |
|||
32
Russkiy
28.04.10
✎
18:03
|
P.S. А форум действительно волшебный...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |