Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 22:43
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Как Добавить новую запись в табличную часть  (Прочитано 5302 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tmpnikl

  • *
  • Сообщений: 38
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-12-24
  • Сайт: 
Нахожу в справочнике по коду нужную запись
Спр_мой = Справочники.Тест.НайтиПоКоду(стр_пск)
у этого справочника есть табличная часть тест_тч
как добавить запись в эту табличную часть
делаю Спр_мой.тест_тч.Добавить();
Спр_мой.тест_тч.моеполе="афыафыаф"
ошибка, как надо правильно обратиться к ТЧ?


Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
Для Каждого стрТЧ из Справочник Цикл
стрТЧ.НужнаястрокаИзТЧСправочника="Чему угодно";
КонецЦикла

Оффлайн tmpnikl

  • *
  • Сообщений: 38
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-12-24
  • Сайт: 
мне не надо в цикле перебор, я нашел запись в справочнике(тест), теперь надо просто добавить запись в табличную часть(в таблицу тест_тч), у меня выдает ошибку, объект не доступен....и т.д.

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
ЗаполнитьЗначенияСвойств(<Приемник>, <Источник>, <СписокСвойств>, <ИсключаяСвойства>)

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
mashencev_anton, внимательно перечитайте вопрос! :^454^:
вы не совсем по теме отвечаете.

tmpnikl, программно добавить строку можно например так:
НоваяСтрока = Спр_мой.тест_тч.добавить(); //метод Добавить() - это не процедура, а функция
НоваяСтрока.МоеПоле = "алпаапввардпрвап";
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн tmpnikl

  • *
  • Сообщений: 38
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-12-24
  • Сайт: 
спасибо, сейчас буду проверять, только вот что смущает..., раньше работал на VFP(это не для того, что бы говорить, что хорошо хорошо, что плохо), и эта привычка, мешает понять, все время навязывая аналогии в алгоритмах и здесь я тоже стараюсь понять
В 1с открываются почему то все таблицы разом, далее просто идет переход по таблицам оператором выбрать( меня это все время сбивает с толку, т.к. подсознательно связывается с sql выборкой, что не так...) или по аналогии select указатель рабочей области, т.к. вот мы указали рабочую область
Справочники.Тест.select
сделали поиск
Спр_мой = Справочники.Тест.НайтиПоКоду(стр_пск)
"Спр_мой" это что?, указатель, ссылка на запись, объект, что хранится в этой переменной?
Далее..мне надо запомнить код связи с которым он связан с табличной частью, перейти в эту таблицу(т.к. все relation в 1с тоже создаются при старте) и добавить запись
и вот тут мне не понятно
НоваяСтрока = Спр_мой.тест_тч.добавить();
запись добавляется, как проверить что преставился код связи(тест->тест_тч) именно той записи которая нашлась, а не первой или последней записи таблицы "тест"... Как-то нет четкой ясности, что в табличную часть таблицы "тест_тч", добавилась запись с кодом(ссылкой)найденой записи в таблице "тест"...


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
tmpnikl, как там обычно говорится? "забудьте все, что вы знали до этого..."

ладно бы это происходило (и происходит) при переходе с платформы на платформу.
так вы с фокс про сравнивать пытаетесь.
1Ской очень много чего из внутренней "кухни" спрятано от разработчика.

Спр_мой = Справочники.Тест.НайтиПоКоду(стр_пск)
"Спр_мой" это что?, указатель, ссылка на запись, объект, что хранится в этой переменной?
ну так берем справку по НайтиПоКоду() (как и по любому другому методу) и смотрим раздел "Возвращаемое значение"

НоваяСтрока = Спр_мой.тест_тч.добавить();
запись добавляется, как проверить что преставился код связи(тест->тест_тч) именно той записи которая нашлась, а не первой или последней записи таблицы "тест"... Как-то нет четкой ясности, что в табличную часть таблицы "тест_тч", добавилась запись с кодом(ссылкой)найденой записи в таблице "тест"...
раз вы добавляете (.Добавить()) строку в тч тест_тч у переменной Спр_мой - значит без вариантов, вы работаете с найденным элементом и никак иначе. даже если и остались сомнения, отладку никто не отменял, ставите на этой строке точку останова и потом смотрите какое значение "сидит" в Спр_мой.

Опять же очень много (как оказывается! )) ) казалось бы при такой простой операции как добавление строки в ТЧ 1Ска от вас спрятала, а вы простите паниковать начинаете ;)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн tmpnikl

  • *
  • Сообщений: 38
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-12-24
  • Сайт: 
1Ской очень много чего из внутренней "кухни" спрятано от разработчика.
вот поэтому и появляются вопросы...
в данном коде,
Спр_мой = Справочники.Тест.НайтиПоКоду(стр_пск)
НоваяСтрока = Спр_мой.тест_тч.добавить();
 когда попытался применить, выдалось сообщение "Объект недоступен для изменения"
если бы на
в общем алгоритм следущий

в справочнике тест находятся запись 1 с кодом 1 и запись 2 с кодом 2, я должен добавить в тест_ТЧ записи с кодом 1, в количестве сколько находятся записей в тест_ТЧ с кодом 2, и заполнить их данными из тест_ТЧ с кодом 2, если бы раньше на это уходило 5 минут, здесь я бьюсь уже второй день...
нахожу запись к кодом 1, запомнил там что-то непонятное
затем нахожу запись с кодом 2 и иду по табличной части этой записи с кодом 2, добавляя записи, где ссылка должна быть на запись 1 и заполненны данными из записи с кодом 2...  вроде всё...

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Т.е. находясь в самом объекте в хотите его изменить?

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
эл2 = справочники.спр.найтипокоду("2");
эл1 = справочники.спр.найтипокоду("1");
эл1объект = эл1.получитьОбъект();
эл1объект.тч.загрузить(эл2.тч.выгрузить());
эл1объект.записать();
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
AIFrame
64 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
alexandr_ll
24 Сообщений

* Кто онлайн

  • Точка Гостей: 269
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal