|
Обновление таб части из обработки | ☑ | ||
---|---|---|---|---|
0
skvitronit
29.06.17
✎
13:56
|
Всем привет.
Есть обработка заполнения табличной части документа, после добавления строк в таб часть она не обновляется, в инете конкретных рабочих примеров не нашёл, может кто-то помочь ? Формы - обычные. |
|||
1
skvitronit
29.06.17
✎
13:57
|
*Нужно обновление таб части без записи дока.
|
|||
2
Рэйв
29.06.17
✎
14:05
|
Форма.ИмяТабличногоПоля.Создатьколонки()
|
|||
3
Рэйв
29.06.17
✎
14:06
|
Или ЭтаФрма.Обновить()
|
|||
4
skvitronit
29.06.17
✎
15:12
|
(2) (3) не катит, Перечитать() тоже... Не ужели из обработки обновить/перечитать таб часть нельзя ?
|
|||
5
Гипервизор
29.06.17
✎
15:22
|
Должно обновляться, код в студию.
|
|||
6
skvitronit
29.06.17
✎
15:27
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
ЗаполнитьТЧ (); КонецПроцедуры Процедура ПриОткрытии() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СпецификацииНоменклатуры.Ссылка |ИЗ | Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НоваяСтрока = ТабЧа.Добавить(); НоваяСтрока.Наименование = ВыборкаДетальныеЗаписи.Ссылка; КонецЦикла; КонецПроцедуры Процедура ЗаполнитьТЧ() Док = СсылкаНаОбъект.ПолучитьОбъект(); Для Каждого ТекСтр ИЗ ТабЧа Цикл Если ТекСтр.Количество = 0 Тогда Иначе Для каждого ТекущаяСтрокаСправочника из ТекСтр.Наименование.ИсходныеКомплектующие Цикл НоваяСтрока = Док.Материалы.Добавить(); ТекЭлемент = Справочники.Номенклатура.НайтиПоНаименованию(ТекущаяСтрокаСправочника.Номенклатура.Наименование); НоваяСтрока.Номенклатура = ТекЭлемент; НоваяСтрока.Количество = ТекущаяСтрокаСправочника.Количество * ТекСтр.Количество; КонецЦикла; КонецЕсли; КонецЦикла; Док.Записать(); КонецПроцедуры //В модуле обработки Процедура Инициализировать(Объект, ИмяТабличнойЧасти = Неопределено, ТабличноеПолеОбъекта = Неопределено) Экспорт СсылкаНаОбъект = Объект.Ссылка; ЭтотОбъект.ПолучитьФорму("Форма").ОткрытьМодально(); КонецПроцедуры |
|||
7
skvitronit
29.06.17
✎
15:36
|
:/
|
|||
8
h-sp
29.06.17
✎
15:40
|
(6) это что за херня?
Док = СсылкаНаОбъект.ПолучитьОбъект(); ты пишешь совсем в другой объект. |
|||
9
skvitronit
29.06.17
✎
15:43
|
(8) Док = док в который в тч которого я добавляю строки.
|
|||
10
h-sp
29.06.17
✎
15:44
|
(9) ты создаешь клоны. В один объект пишешь, другой объект просматриваешь. Неужели не видишь?
|
|||
11
Гипервизор
29.06.17
✎
15:48
|
Обработка заполнения ТЧ подключается к документу и в форме документа появляется кнопка заполнения ТЧ.
Необходимым условием является наличие экспортной процедуры Инициализировать(), почитайте как ОЗТЧ работает. Вы что-то невероятное наворотили, какие-то лишние процедуры. Зачем? |
|||
12
skvitronit
29.06.17
✎
15:52
|
(11) :( первый раз на обычных формах, делал чтобы как-то работало...
|
|||
13
Гипервизор
29.06.17
✎
15:53
|
И если вам "Нужно обновление таб части без записи дока", то для чего у вас в коде Док.Записать() ?
|
|||
14
skvitronit
29.06.17
✎
15:53
|
(13) это были тестовые пробы =)
|
|||
15
Гипервизор
29.06.17
✎
15:55
|
Может тут у вас что-то хитрое и я просто не догоняю?
Что за форму открываете? Почему нельзя в процедуре Инициализировать() сразу замутить запрос и обход выборки с заполнением ТЧ? |
|||
16
skvitronit
29.06.17
✎
16:00
|
(15) запрос кидает данные на форму обработки, там вводятся количество, и после нажатия кнопки выполнить, должна заполнятся тч дока.
|
|||
17
h-sp
29.06.17
✎
16:02
|
(16) ну так и пиши
Количество = ЭтотОбъект.ПолучитьФорму("Форма").ОткрытьМодально(); зачем какую-то фигню придумал с переносами ссылок и созданием армии объектов? |
|||
18
skvitronit
29.06.17
✎
16:18
|
(17) не сильно понимаю чем мне это может помочь
|
|||
19
h-sp
29.06.17
✎
16:22
|
(18) в общем у вас есть процедура
Процедура Инициализировать(Объект, ИмяТабличнойЧасти = Неопределено, ТабличноеПолеОбъекта = Неопределено) Экспорт в ней есть Объект, в него и пишите. типа НоваяСтрока = Объект.Материалы.Добавить(); ТекЭлемент = Справочники.Номенклатура.НайтиПоНаименованию(ТекущаяСтрокаСправочника.Номенклатура.Наименование); НоваяСтрока.Номенклатура = ТекЭлемент; НоваяСтрока.Количество = ТекущаяСтрокаСправочника.Количество * ТекСтр.Количество; |
|||
20
skvitronit
29.06.17
✎
16:28
|
(19) Мне нужно что бы заполнение тч вызывалось после нажатия на кнопку Выполнить, мне из процедуры нажатия вызывать Инициализировать() и в неё опять же передавать Объект = СсылкаНаОбъект ?
|
|||
21
h-sp
29.06.17
✎
16:31
|
(20) Объект должен быть, который тебе передан. Он не равен СсылкаНаОбъект. Ты же попал в свою форму из Инициализировать, значит туда и вернешься по кнопке Выполнить. И уже в ней заполняй Объект. А не в каком-то ПриОткрытии.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |