|
Добавление реквизита в документы с последующим выводом в журнал документов. | ☑ | ||
---|---|---|---|---|
0
Arnulf
08.11.16
✎
07:00
|
Всем доброго времени суток! Подскажите по коду пожалуйста чайнику. Как с помощью процедуры ПередЗаписью добавить реквизит, где записывается табличная часть документа (первая строка). Чтобы потом этот реквизит вывести в форму списка журнала документов.
|
|||
1
PuhUfa
08.11.16
✎
07:09
|
(0) а как сам пробовал? и что не получилось?
|
|||
2
Arnulf
08.11.16
✎
07:12
|
(1) Сам не пробывал... Так по советовал сделать преподаватель. Но весь интернет обрыскал и не нашёл ничего похожего.
|
|||
3
DrZombi
гуру
08.11.16
✎
07:22
|
(2) Вот ты попробуй, и нам опиши :)
А потом и вопросы задавай, что не получилось... А так... Открываешь конфигуратор и работаешь в нем |
|||
4
DrZombi
гуру
08.11.16
✎
07:24
|
+(2) Добавь реквизит в шапку. Можно текстовый, длины 1000 символов хватит
Заполняй его первым значением из первой строчки, либо несколькими строчками. В итоге у тебя будет реквизит, заполненный неким информационным мусором. ... Реквизит из шапки уже можно добавить в журнал (список документов) |
|||
5
DrZombi
гуру
08.11.16
✎
07:25
|
+(4) Заполнять такое чудо можно из Модуля документа - "ПередЗаписью"
|
|||
6
DrZombi
гуру
08.11.16
✎
07:27
|
+(5) Рекомендую не фонатеть и обойтись к примеру всего 5-тью первыми строчками... Все ровно если в табличной части будет уже 100 или 1000 строк, то смысла от такой информации уже будет еще меньше :)
|
|||
7
Arnulf
08.11.16
✎
08:03
|
(6) &НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Для Каждого ВыбранныйЭлемент Из Этаформа.Элементы.ГруппаНомерДата Цикл НоваяСтрока = Объект.ОписаниеТабличнойЧасти.Добавить(); МассивТипов = новый Массив; МассивТипов.Добавить(Тип("Строка")); ДобавляемыеРеквизиты = Новый Массив; МассивТипов = новый Массив; МассивТипов.Добавить(Тип("Строка")); Реквизит = Новый РеквизитФормы("НМА",новый ОписаниеТипов(МассивТипов),Объект.Номер, "Поле ввода строки", Истина); ДобавляемыеРеквизиты.Добавить(Реквизит); ИзменитьРеквизиты(ДобавляемыеРеквизиты); НоваяСтрока.ОписаниеТабличнойЧасти =("ЭтаФорма.Элементы.ДеревоНоменклатурыКарточкаНоменклатурыНаименование"); КонецЦикла; КонецПроцедуры Что я не так делаю? |
|||
8
PuhUfa
08.11.16
✎
08:21
|
(7) Ты уверен что правильно понял условия задачи?
|
|||
9
Arnulf
08.11.16
✎
08:24
|
(8) да
|
|||
10
Arnulf
08.11.16
✎
08:25
|
(8) но боюсь я не правильно реализую(
|
|||
11
PuhUfa
08.11.16
✎
08:28
|
(9) >>с помощью процедуры ПередЗаписью добавить реквизит
добавить реквизит куда? Что то мне кажется, что задача куда проще. Добавить в документ "Реквизит". ПередЗаписью в этот "Реквизит" записывать значение из первой строки ТЧ и потом в Списке просто добавить еще колонку отображающую значение этого реквизита. |
|||
12
Arnulf
08.11.16
✎
08:36
|
(11) Реквизит создал дал имя "описание табличной части", а как записать содержимое табличной части (первых 3 строк достаточно), чтобы знаения строк записывались через запятую... Вот тут запутался( С помощью процдуры "ПередЗаписью" конечно же...
|
|||
13
Рэйв
08.11.16
✎
08:37
|
(12)ты н понимаешь простой вещи. Программно созданный реквизит нигде не хранится в базе и умират вместе с объектом.
Тебе для вывода в журнал нужен ЗАПИСАННЫЙ рквизит. Так что слушай (11) |
|||
14
Arnulf
15.11.16
✎
05:23
|
(13) Я записал реквизит. Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Для Каждого ВыбранныйЭлемент Из Этаформа.Элементы.ГруппаНомерДата Цикл НоваяСтрока = Объект.ОписаниеТабличнойЧасти.Добавить(); МассивТипов = новый Массив; МассивТипов.Добавить(Тип("Строка")); ДобавляемыеРеквизиты = Новый Массив; МассивТипов = новый Массив; МассивТипов.Добавить(Тип("Строка")); Реквизит= ЭтаФорма.Объект.ОписаниеТабличнойЧасти; ДобавляемыеРеквизиты.Добавить(Реквизит); ИзменитьРеквизиты(ДобавляемыеРеквизиты); НоваяСтрока.ОписаниеТабличнойЧасти =ДеревоНоменклатуры.ДеревоНоменклатурыНоменклатура; КонецЦикла; КонецПроцедуры И в ничего не отображается в журнале просто пустое поле... |
|||
15
h-sp
15.11.16
✎
05:42
|
(14) ты совсем не понимаешь,чего творишь.
реквизит надо добавить не в форму, а в документ твой. Где у тебя структура конфигурации, находишь этот документ, у него реквизиты, туда добавляешь новый реквизит, тип строка. И ПередЗаписью ты должен делать не в форме, а в модуле объекта. Это опять же в структуре конфигурации, правой кнопкой мыши щелкаешь и там открыть модуль объекта. |
|||
16
Arnulf
15.11.16
✎
05:44
|
(15) Я именно так и сделал причём в 3х документах, которые записываются в этом журнале.
|
|||
17
h-sp
15.11.16
✎
05:54
|
(16) тогда что в (14)? мираж?
|
|||
18
Arnulf
15.11.16
✎
05:56
|
(17) АААА всё понял) Спасибо) Сейчас попробую)
|
|||
19
Arnulf
15.11.16
✎
06:38
|
(17) Вот я сделал в модуле документа но всё так-же не отображается(
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Для Каждого Документа Из Документы.Списание Цикл НоваяСтрока = ОписаниеТабличнойЧасти.Добавить(); МассивТипов = новый Массив; МассивТипов.Добавить(Тип("Строка")); ДобавляемыеРеквизиты = Новый Массив; МассивТипов = новый Массив; МассивТипов.Добавить(Тип("Строка")); Реквизит=ОписаниеТабличнойЧасти; ДобавляемыеРеквизиты.Добавить(Реквизит); НоваяСтрока=ОписаниеТабличнойЧасти =("ДеревоНоменклатуры.ДеревоНоменклатурыНоменклатура"); ДобавляемыеРеквизиты=(ОписаниеТабличнойЧасти); Объект= Документы.Списание.ПолучитьСсылку().ОписаниеТабличнойЧасти; КарточкаНоменклатуры.Наименование=Объект.Наименование; Объект.Записать(); КонецЦикла; КонецПроцедуры |
|||
20
Рэйв
15.11.16
✎
08:17
|
(19)Ты не тормоз. нет. Ты медленный газ :-)
|
|||
21
Arnulf
15.11.16
✎
08:20
|
(20) Я Просто чайник)
|
|||
22
h-sp
15.11.16
✎
09:22
|
(21) реквизит добавляешь не в тексте программы, а в дерево конфигурации. Щелкаешь добавить и вводишь имя реквизита. ВСё.
|
|||
23
Adilgeriy
15.11.16
✎
09:25
|
посмотри кадровые документы в ЗУП 2.5 там этот механизм реализован полностью как ты хочешь
|
|||
24
Adilgeriy
15.11.16
✎
09:25
|
но он работает не перед записью а при изменении табличной части
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |