1с Заполнение табличной части #786813


#0 by Wefast
Есть таблица в виде текстового файла. Колонки разделены ";" Первая строка это названия колонок. Программно формирую колонки. И вывожу их на форму. Текстовыми данными заполняю таблицу. И пытаюсь заполнить 2 поля у строки с типом справочник.склад и спраовчник.контрагенты. Но что то они не присваиваются и поля пустые. Судя по сп нет каких то особых методов. Просто присваиваешь новое значение поля строки и все. Что я делаю не так? &НаКлиенте
#1 by DrShad
что в этой функции? НайтиЭлем
#2 by Wefast
возвращает элемент справочника Склад или Контрагента
#3 by DrShad
ты код покажи ибо не возвращает
#4 by Wefast
&НаСервере
#5 by DrShad
да и вообще какое-то странное заполнение ТЧ у тебя выходит - все через клиента
#6 by DrShad
какой ужас
#7 by DrShad
ГДЕ тут нужно не =, а ПОДОБНО
#8 by DrShad
тут
#9 by DrShad
#10 by DrShad
Возврат
#11 by Wefast
ну отладкой я смотрел Склад он находит тот что нужно. Но не присваивает его.
#12 by FIXXXL
в хорошей функции - один Возврат :) тип колонки проверь, куда пишешь
#13 by DrShad
а почему заполнение на клиенте?
#14 by DrShad
ну конечно
#15 by Wefast
а разница   не очень понял и что он вернет? ну в этом и загвоздка что тип один и тот же
#16 by Wefast
Переделываю с 7 на 8. Просто так сделал, не задумывался на этот счет.
#17 by DrShad
разница? выгрузка результата запроса в ТЗ, даже если в нем всего одна строка - медленнее чем обход выборки
#18 by DrShad
если сделать как в то из функции выйдет раньше - меньше строк обрабатываемого кода
#19 by DrShad
типы то совпадают, но из-за того что заполняешь на клиенте не обновляя форму - ты их просто не видишь, а они есть )))
#20 by Wefast
так я там же заполняю и текстовые реквезиты. И они видны. Куда его там впихнуть и для чего? Там вроде нет места откуда стоило бы выйти раньше. В любом случае, это же функция. Возврат требует выражения после себя.
#21 by DrShad
ну так у тебя после каждого Э =  есть выражение
#22 by DrShad
блин, сразу не заметил
#23 by DrShad
т.е. смотри  ты сначала по условию заполняешь Контрагент или Склад ссылкой и тут же после условия заменяешь на строку
#24 by DrShad
#25 by DrShad
так перепиши
#26 by Wefast
направил в нужном направление. Спасибо. В своем случае заменил на кусок
#27 by DrShad
это совсем лишнее ИначеЕсли ЭлементСтроки.Ключ = "Контрагент" или  ЭлементСтроки.Ключ="Склад" Тогда                         Продолжить; оно до него никогда не дойдет
#28 by DrShad
сорри на имена ключей не обратил внимания
#29 by Wefast
т.е. вместо Нужжно: Это разве хоть как то оптимизирует код? Там все это происходит в переборе структуры со значениями колонок. Колонки Контрагент и Склад заполняются не из текстового файла а на основание одних из полей этого текстового файла. Т.е. ЭлементСтроки.Ключ = "agentname" должно заполнится два поля строки: agentname и контрагент в данном случае. Или номер по которому ищется склад и сам склад И когда доходит перебор до ЭлементСтроки.Ключ="Контрагент" Заполнять НоваяСтрока[ЭлементСтроки.Ключ] таким образом уже не нужно, т.к. я уже заполнил к этому моменту это поле Т.е. получается все таки надо так:
#30 by Wefast
Не уверен в чем именно дело, но работает все это очень долго. Видимо все равно придется все переписывать
#31 by DrShad
ну и чем отличается это
#32 by DrShad
двойное присвоение происходит
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С