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


1С:Предприятие ::

Метки: 

Обработка заполнения табличных частей

Я
   nulback
 
24.01.18 - 21:00
Добрый день уважаемые форумчане. Подскажите пож-та сделал обработку по заполнению табличных частей, через отладку все отлично заполняется и показывает строки в таб части, если запускать из табчасти то она остается пустая. Не могу понять в чем причина? Подскажите плз. Спасибо.
 
 
   trooba
 
1 - 24.01.18 - 21:28
(0) не указана табличная часть, не указан документ. Где код?
   trooba
 
2 - 24.01.18 - 21:28
(0) Телепаты в отпусках
   nulback
 
3 - 24.01.18 - 21:38
(1) так через эту же обработку в режиме отладки все ок заполняется.
   nulback
 
4 - 24.01.18 - 21:41
(3)

Процедура Инициализировать(Объект, ИмяТабличнойЧасти = Неопределено, ТабличноеПолеОбъекта = Неопределено) Экспорт
    
    
    СчетДляОтбора = ВыбранноеЗначение;
    
    ВыборкаОС = ОстаткиОС(,ВыбранноеЗначение.Значение);
    
    Для Каждого СтрокаОС Из ВыборкаОС Цикл
        
        НоваяСтрока = Объект.ОС.Добавить();
        
        НоваяСтрока.ОсновноеСредство       = СтрокаОС.ОсновноеСредство;
        НоваяСтрока.СтоимостьПоДаннымУчета = СтрокаОС.ВосстановительнаяСтоимость;
        НоваяСтрока.НаличиеПоДаннымУчета   = Истина;
        
    КонецЦикла;
    
КонецПроцедуры
   Serg_1960
 
5 - 24.01.18 - 22:31
(4) Непонятен контекст вызова обработки (клиент, сервер?), вызывает подозрение обращение к "ВыбранноеЗначение.Значение" (элемент формы?) и есть ли записи в "ВыборкаОС" после всех этих манипуляций.
   nulback
 
6 - 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
нет там ничего в момент вызова Инициализировать...

воткни Сообщить() в код и увидишь сам, что там кукишь и останков тоже нема. вот ничем и не заполняется ТЧ дока.
 
 Рекламное место пустует
   nulback
 
11 - 24.01.18 - 23:25
(9) да даже без этого все равно пустая табличная часть убрал если вам мешает
сделал так ВыборкаОС = ОстаткиОС();
Выборка ОС количество 5, 
После цикла Объект.ОС количество -5 на форме пустая таб часть
   nulback
 
12 - 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) Как называется табличная часть и где в коде добавление строк в эту несчастную табличную часть?
   Franchiser
 
18 - 24.01.18 - 23:50
Это под толстый клиент?
   nulback
 
19 - 24.01.18 - 23:54
(17) табличная часть "ОС" называется, добавляется тут Объект.ОС.Добавить() 
(18) да толстый клиент
(13) я же вижу форма открыта из которой запускаю обработку, которая подключена в справочник как обработка заполнения табличных частей
   Franchiser
 
20 - 25.01.18 - 00:11
(19) может у тебя не обновилась обработка в справочнике внешних обработок? Повставляй Сообщить()
   Serg_1960
 
21 - 25.01.18 - 11:04
(6) "такое ощущение что не обновляется форма" - ну так поставь в алгоритм Обновить() :(
   Гипервизор
 
22 - 25.01.18 - 11:13
А почему ИмяТабличнойЧасти = Неопределено?
Разве при подключении обработки не надо указать документ и ТЧ, которую обработка будет заполнять? Попробуйте убрать "= Неопределено" и написать так Объект[ИмяТабличнойЧасти].Добавить();
   Serg_1960
 
23 - 25.01.18 - 11:20
Да, уж... у автора в алгоритме много скрытых возможностей на тему "сам себе злобный Буратино"(цы) :(

(22) В данном алгоритме второй и третий параметры обработки вообще не используются. От слова "совсем" :)
   nulback
 
24 - 25.01.18 - 12:03
повставлял везде где только можно сообщить в итоге получил следующую картину:
Заходим в документ. Меню заполнить добавленная мной обработка
Документ: Инвентаризация ОС 00001 от 01.01.2018
Количество строк в выборке: 0

Заходим в справочник внешних отчетов обработок табличных частей, сохраняю в отдельную папку обработку по которой не заполняется. Далее рисую форму для обработки на форме размещаю реквизит СсылкаНаОбъект - Тип значения ДокументСсылка.ИнвентаризацияОС, в модуле в процедуре "КнопкаВыполнитьНажатие" пишу  Инициализировать(СсылкаНаОбъект.ПолучитьОбъект(), "ОС", ТабличноеПолеОбъекта = Неопределено)
Далее через файл - открыть, указываю наш созданный документ в итоге кроме редактирования формы обработки не поменялось ничего, но имею следующую ситуацию:

Документ: Инвентаризация ОС 00001 от 01.01.2018
Количество строк в выборке: 1
Добавляем строку в табчасть
   nulback
 
25 - 25.01.18 - 12:05
(24) заменяю вновь подредактированной обработкой получаю заполняя из документа:

Документ: Инвентаризация ОС 00001 от 01.01.2018
Количество строк в выборке: 0 

Открываю ее же заново через файл открыть 
Документ: Инвентаризация ОС 00001 от 01.01.2018 
Количество строк в выборке: 1 
Добавляем строку в табчасть
   Serg_1960
 
26 - 25.01.18 - 12:25
(24)  "Инициализировать(СсылкаНаОбъект.ПолучитьОбъект()..." - sorry, но это на грани бреда. В типовых конфигурациях в первый параметр вставляется "ЭтотОбъект".
Если хочешь, то проверку типа первого параметра можно сделать в обработке и привести к нужному типу в переменную.

(25) Если желаешь, то обращение к "ВыбранноеЗначение" можно уточнить через ЭтаФорма...ЭлементыФормы...БлаБлаБла...

Но, обращение в элементам формы  - это моветон :(
   Serg_1960
 
27 - 25.01.18 - 12:32
Фишка в том, что Вы можете получить трудновыявляемую проблему, связанную с областью видимости переменных.
   nulback
 
28 - 25.01.18 - 12:39
(26) спс за разьяснения
(27) ну вот я просто не могу понять, почему один и тот же запрос, выдает через различные варианты не одинаковый результат, кстати в консоли запросов, запрос который формирует выборку тоже имеет одну строку, в итоге запрос одинаков, а результат заполнения различными методами разный.
   Serg_1960
 
29 - 25.01.18 - 13:12
(28) Мне трудно ответить на Ваш вопрос так, как я не знаю что в функции ОстаткиОС() находится. В принципе, чисто теоретически рассуждая, можно предположить то, что эта функция тоже контекстно-чувствительная.
   Franchiser
 
30 - 25.01.18 - 13:34
(28) ВыборкаОС  у тебя пустая когда ты запускаешь из внешних обработок, ищи причину в этой функции.
Напиши Сообщить(ВыбранноеЗначение.Значение)
Напиши Сообщить(ВыбранноеЗначение)
Приведи код функции ОстаткиОС()



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