|
Обработка заполнения табличных частей | ☑ | ||
---|---|---|---|---|
0
nulback
24.01.18
✎
21:00
|
Добрый день уважаемые форумчане. Подскажите пож-та сделал обработку по заполнению табличных частей, через отладку все отлично заполняется и показывает строки в таб части, если запускать из табчасти то она остается пустая. Не могу понять в чем причина? Подскажите плз. Спасибо.
|
|||
1
trooba
24.01.18
✎
21:28
|
(0) не указана табличная часть, не указан документ. Где код?
|
|||
2
trooba
24.01.18
✎
21:28
|
(0) Телепаты в отпусках
|
|||
3
nulback
24.01.18
✎
21:38
|
(1) так через эту же обработку в режиме отладки все ок заполняется.
|
|||
4
nulback
24.01.18
✎
21:41
|
(3)
Процедура Инициализировать(Объект, ИмяТабличнойЧасти = Неопределено, ТабличноеПолеОбъекта = Неопределено) Экспорт СчетДляОтбора = ВыбранноеЗначение; ВыборкаОС = ОстаткиОС(,ВыбранноеЗначение.Значение); Для Каждого СтрокаОС Из ВыборкаОС Цикл НоваяСтрока = Объект.ОС.Добавить(); НоваяСтрока.ОсновноеСредство = СтрокаОС.ОсновноеСредство; НоваяСтрока.СтоимостьПоДаннымУчета = СтрокаОС.ВосстановительнаяСтоимость; НоваяСтрока.НаличиеПоДаннымУчета = Истина; КонецЦикла; КонецПроцедуры |
|||
5
Serg_1960
24.01.18
✎
22:31
|
(4) Непонятен контекст вызова обработки (клиент, сервер?), вызывает подозрение обращение к "ВыбранноеЗначение.Значение" (элемент формы?) и есть ли записи в "ВыборкаОС" после всех этих манипуляций.
|
|||
6
nulback
24.01.18
✎
23:05
|
(5) блин пишу же если запускаю как обработку, через файл -открыть, то документ заполняется. такое ощущение что не обновляется форма после добавления данных в табличную часть.
|
|||
7
Михаил Козлов
24.01.18
✎
23:14
|
(6) Табличное поле в объекте связано с табличной частью?
|
|||
8
Ёпрст
24.01.18
✎
23:17
|
(6) ты просто путаешь Объект и ССылку на объект..
|
|||
9
Ёпрст
24.01.18
✎
23:21
|
хотя не, в коде всё верно, окромя вот этого:
ВыбранноеЗначение.Значение |
|||
10
Ёпрст
24.01.18
✎
23:22
|
нет там ничего в момент вызова Инициализировать...
воткни Сообщить() в код и увидишь сам, что там кукишь и останков тоже нема. вот ничем и не заполняется ТЧ дока. |
|||
11
nulback
24.01.18
✎
23:25
|
(9) да даже без этого все равно пустая табличная часть убрал если вам мешает
сделал так ВыборкаОС = ОстаткиОС(); Выборка ОС количество 5, После цикла Объект.ОС количество -5 на форме пустая таб часть |
|||
12
nulback
24.01.18
✎
23:26
|
(10) воткул Сообщить() сообщение выводится
|
|||
13
Ёпрст
24.01.18
✎
23:31
|
Как ты проверяешь, что ТЧ пустая ?
|
|||
14
Ёпрст
24.01.18
✎
23:32
|
в цикл хоть попадает ?
|
|||
15
Ёпрст
24.01.18
✎
23:32
|
туда воткни сообщить для проверки
|
|||
16
Ёпрст
24.01.18
✎
23:35
|
если после цикла, количество строк - 5, то всё заполняет у тебя. Просто типы не совпадают. вот и видишь ты 5 пустых строк.
|
|||
17
Мимохожий Однако
24.01.18
✎
23:41
|
(11) Как называется табличная часть и где в коде добавление строк в эту несчастную табличную часть?
|
|||
18
Franchiser
гуру
24.01.18
✎
23:50
|
Это под толстый клиент?
|
|||
19
nulback
24.01.18
✎
23:54
|
(17) табличная часть "ОС" называется, добавляется тут Объект.ОС.Добавить()
(18) да толстый клиент (13) я же вижу форма открыта из которой запускаю обработку, которая подключена в справочник как обработка заполнения табличных частей |
|||
20
Franchiser
гуру
25.01.18
✎
00:11
|
(19) может у тебя не обновилась обработка в справочнике внешних обработок? Повставляй Сообщить()
|
|||
21
Serg_1960
25.01.18
✎
11:04
|
(6) "такое ощущение что не обновляется форма" - ну так поставь в алгоритм Обновить() :(
|
|||
22
Гипервизор
25.01.18
✎
11:13
|
А почему ИмяТабличнойЧасти = Неопределено?
Разве при подключении обработки не надо указать документ и ТЧ, которую обработка будет заполнять? Попробуйте убрать "= Неопределено" и написать так Объект[ИмяТабличнойЧасти].Добавить(); |
|||
23
Serg_1960
25.01.18
✎
11:20
|
Да, уж... у автора в алгоритме много скрытых возможностей на тему "сам себе злобный Буратино"(цы) :(
(22) В данном алгоритме второй и третий параметры обработки вообще не используются. От слова "совсем" :) |
|||
24
nulback
25.01.18
✎
12:03
|
повставлял везде где только можно сообщить в итоге получил следующую картину:
Заходим в документ. Меню заполнить добавленная мной обработка Документ: Инвентаризация ОС 00001 от 01.01.2018 Количество строк в выборке: 0 Заходим в справочник внешних отчетов обработок табличных частей, сохраняю в отдельную папку обработку по которой не заполняется. Далее рисую форму для обработки на форме размещаю реквизит СсылкаНаОбъект - Тип значения ДокументСсылка.ИнвентаризацияОС, в модуле в процедуре "КнопкаВыполнитьНажатие" пишу Инициализировать(СсылкаНаОбъект.ПолучитьОбъект(), "ОС", ТабличноеПолеОбъекта = Неопределено) Далее через файл - открыть, указываю наш созданный документ в итоге кроме редактирования формы обработки не поменялось ничего, но имею следующую ситуацию: Документ: Инвентаризация ОС 00001 от 01.01.2018 Количество строк в выборке: 1 Добавляем строку в табчасть |
|||
25
nulback
25.01.18
✎
12:05
|
(24) заменяю вновь подредактированной обработкой получаю заполняя из документа:
Документ: Инвентаризация ОС 00001 от 01.01.2018 Количество строк в выборке: 0 Открываю ее же заново через файл открыть Документ: Инвентаризация ОС 00001 от 01.01.2018 Количество строк в выборке: 1 Добавляем строку в табчасть |
|||
26
Serg_1960
25.01.18
✎
12:25
|
(24) "Инициализировать(СсылкаНаОбъект.ПолучитьОбъект()..." - sorry, но это на грани бреда. В типовых конфигурациях в первый параметр вставляется "ЭтотОбъект".
Если хочешь, то проверку типа первого параметра можно сделать в обработке и привести к нужному типу в переменную. (25) Если желаешь, то обращение к "ВыбранноеЗначение" можно уточнить через ЭтаФорма...ЭлементыФормы...БлаБлаБла... Но, обращение в элементам формы - это моветон :( |
|||
27
Serg_1960
25.01.18
✎
12:32
|
Фишка в том, что Вы можете получить трудновыявляемую проблему, связанную с областью видимости переменных.
|
|||
28
nulback
25.01.18
✎
12:39
|
(26) спс за разьяснения
(27) ну вот я просто не могу понять, почему один и тот же запрос, выдает через различные варианты не одинаковый результат, кстати в консоли запросов, запрос который формирует выборку тоже имеет одну строку, в итоге запрос одинаков, а результат заполнения различными методами разный. |
|||
29
Serg_1960
25.01.18
✎
13:12
|
(28) Мне трудно ответить на Ваш вопрос так, как я не знаю что в функции ОстаткиОС() находится. В принципе, чисто теоретически рассуждая, можно предположить то, что эта функция тоже контекстно-чувствительная.
|
|||
30
Franchiser
гуру
25.01.18
✎
13:34
|
(28) ВыборкаОС у тебя пустая когда ты запускаешь из внешних обработок, ищи причину в этой функции.
Напиши Сообщить(ВыбранноеЗначение.Значение) Напиши Сообщить(ВыбранноеЗначение) Приведи код функции ОстаткиОС() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |