Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Добавление реквизита в документы с последующим выводом в журнал документов.

Добавление реквизита в документы с последующим выводом в журнал документов.
Я
   Arnulf
 
08.11.16 - 07:00
Всем доброго времени суток! Подскажите по коду пожалуйста чайнику. Как с помощью процедуры ПередЗаписью добавить реквизит, где записывается табличная часть документа (первая строка). Чтобы потом этот реквизит вывести в форму списка журнала документов.
 
 
   PuhUfa
 
1 - 08.11.16 - 07:09
(0) а как сам пробовал? и что не получилось?
   Arnulf
 
2 - 08.11.16 - 07:12
(1) Сам не пробывал... Так по советовал сделать преподаватель. Но весь интернет обрыскал и не нашёл ничего похожего.
   DrZombi
 
3 - 08.11.16 - 07:22
(2) Вот ты попробуй, и нам опиши :)
А потом и вопросы задавай, что не получилось...

А так... Открываешь конфигуратор и работаешь в нем
   DrZombi
 
4 - 08.11.16 - 07:24
+(2) Добавь реквизит в шапку. Можно текстовый, длины 1000 символов хватит
Заполняй его первым значением из первой строчки, либо несколькими строчками.

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

...
Реквизит из шапки уже можно добавить в журнал (список документов)
   DrZombi
 
5 - 08.11.16 - 07:25
+(4) Заполнять такое чудо можно из Модуля документа - "ПередЗаписью"
   DrZombi
 
6 - 08.11.16 - 07:27
+(5) Рекомендую не фонатеть и обойтись к примеру всего 5-тью первыми строчками... Все ровно если в табличной части будет уже 100 или 1000 строк, то смысла от такой информации уже будет еще меньше :)
   Arnulf
 
7 - 08.11.16 - 08:03
(6) &НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Для Каждого ВыбранныйЭлемент Из Этаформа.Элементы.ГруппаНомерДата Цикл
НоваяСтрока = Объект.ОписаниеТабличнойЧасти.Добавить();
МассивТипов = новый Массив;
МассивТипов.Добавить(Тип("Строка"));
ДобавляемыеРеквизиты = Новый Массив;
МассивТипов = новый Массив;
МассивТипов.Добавить(Тип("Строка"));
Реквизит = Новый РеквизитФормы("НМА",новый ОписаниеТипов(МассивТипов),Объект.Номер, "Поле ввода строки", Истина);
ДобавляемыеРеквизиты.Добавить(Реквизит);
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
НоваяСтрока.ОписаниеТабличнойЧасти =("ЭтаФорма.Элементы.ДеревоНоменклатурыКарточкаНоменклатурыНаименование");

КонецЦикла;
КонецПроцедуры
Что я не так делаю?
   PuhUfa
 
8 - 08.11.16 - 08:21
(7) Ты уверен что правильно понял условия задачи?
   Arnulf
 
9 - 08.11.16 - 08:24
(8) да
   Arnulf
 
10 - 08.11.16 - 08:25
(8) но боюсь я не правильно реализую(
 
 Рекламное место пустует
   PuhUfa
 
11 - 08.11.16 - 08:28
(9) >>с помощью процедуры ПередЗаписью добавить реквизит
добавить реквизит куда?

Что то мне кажется, что задача куда проще. Добавить в документ "Реквизит". ПередЗаписью в этот "Реквизит" записывать значение из первой строки ТЧ и потом в Списке просто добавить еще колонку отображающую значение этого реквизита.
   Arnulf
 
12 - 08.11.16 - 08:36
(11) Реквизит создал дал имя "описание табличной части", а как записать содержимое табличной части (первых 3 строк достаточно), чтобы знаения строк записывались через запятую...  Вот тут запутался( С помощью процдуры "ПередЗаписью" конечно же...
   Рэйв
 
13 - 08.11.16 - 08:37
(12)ты н понимаешь простой вещи. Программно созданный реквизит нигде не хранится в базе и умират вместе с объектом.
Тебе для вывода в журнал нужен ЗАПИСАННЫЙ рквизит. Так что слушай (11)
   Arnulf
 
14 - 15.11.16 - 05:23
(13) Я записал реквизит. Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
                Для Каждого ВыбранныйЭлемент Из Этаформа.Элементы.ГруппаНомерДата Цикл
НоваяСтрока = Объект.ОписаниеТабличнойЧасти.Добавить();
МассивТипов = новый Массив;
МассивТипов.Добавить(Тип("Строка"));
ДобавляемыеРеквизиты = Новый Массив;
МассивТипов = новый Массив;
МассивТипов.Добавить(Тип("Строка"));
Реквизит= ЭтаФорма.Объект.ОписаниеТабличнойЧасти;
ДобавляемыеРеквизиты.Добавить(Реквизит);
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
НоваяСтрока.ОписаниеТабличнойЧасти =ДеревоНоменклатуры.ДеревоНоменклатурыНоменклатура;
КонецЦикла;


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

И в ничего не отображается в журнале просто пустое поле...
   h-sp
 
15 - 15.11.16 - 05:42
(14) ты совсем не понимаешь,чего творишь.

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

И ПередЗаписью ты должен делать не в форме, а в модуле объекта.
Это опять же в структуре конфигурации,  правой кнопкой мыши щелкаешь и там открыть модуль объекта.
   Arnulf
 
16 - 15.11.16 - 05:44
(15) Я именно так и сделал причём в 3х документах, которые записываются в этом журнале.
   h-sp
 
17 - 15.11.16 - 05:54
(16) тогда что в (14)? мираж?
   Arnulf
 
18 - 15.11.16 - 05:56
(17) АААА всё понял) Спасибо) Сейчас попробую)
   Arnulf
 
19 - 15.11.16 - 06:38
(17) Вот я сделал в модуле документа но всё так-же не отображается(
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)      
                Для Каждого Документа Из Документы.Списание Цикл
НоваяСтрока = ОписаниеТабличнойЧасти.Добавить();
МассивТипов = новый Массив;
МассивТипов.Добавить(Тип("Строка"));
ДобавляемыеРеквизиты = Новый Массив;
МассивТипов = новый Массив;
МассивТипов.Добавить(Тип("Строка"));
Реквизит=ОписаниеТабличнойЧасти;
ДобавляемыеРеквизиты.Добавить(Реквизит);

НоваяСтрока=ОписаниеТабличнойЧасти =("ДеревоНоменклатуры.ДеревоНоменклатурыНоменклатура");
ДобавляемыеРеквизиты=(ОписаниеТабличнойЧасти);


Объект= Документы.Списание.ПолучитьСсылку().ОписаниеТабличнойЧасти;
КарточкаНоменклатуры.Наименование=Объект.Наименование;
Объект.Записать();
                    
КонецЦикла;
КонецПроцедуры
   Рэйв
 
20 - 15.11.16 - 08:17
(19)Ты не тормоз. нет. Ты медленный газ :-)
   Arnulf
 
21 - 15.11.16 - 08:20
(20) Я Просто чайник)
   h-sp
 
22 - 15.11.16 - 09:22
(21)  реквизит добавляешь не в тексте программы, а в дерево конфигурации. Щелкаешь добавить и вводишь имя реквизита. ВСё.
   Adilgeriy
 
23 - 15.11.16 - 09:25
посмотри кадровые документы в ЗУП 2.5 там этот механизм реализован полностью как ты хочешь
   Adilgeriy
 
24 - 15.11.16 - 09:25
но он работает не перед записью а при изменении табличной части


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует