Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

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

Обработка заполнения табличных частей
Я
   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 человек.